Что нового

[Сеть, интернет] Русский язык и TCPRecv

AlexxxRu

Знающий
Сообщения
19
Репутация
6
Проблема:
Вместо русского языка я вижу что-то на подобии
"обро пожаловать на Travian rux2 сервер!"
Можно ли это как-то исправить?
Код:
#include<Array.au3>
$Html = GetHTML('tx2.travian.ru','/dorf1.php')
ConsoleWrite($Html)
$a= StringRegExp($Html,'<h2>(.+?)</h2>',3)
_ArrayDisplay($a)

Func GetHTML($host, $page, $Inf='', $Language = 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3')
    Local $ip, $socket, $Headers, $RecBuff, $HTML, $Bytes
    TCPStartup()
    $ip = TCPNameToIP($host)
    If $ip = '' Then
        ConsoleWrite(@CRLF&'==============='&@CRLF&'Не удалось преобразовать адрес в ip'&@CRLF&'==============='&@CRLF)
        TCPShutdown()
        return -1
    EndIf

    While 1
        $socket = TCPConnect($ip,80)
        If $socket = -1 Then
            ConsoleWrite(@CRLF&'==============='&@CRLF&'Не удалось подключиться! Переподключение...'&@CRLF&'==============='&@CRLF)
            Sleep(5000)
        Else
            ExitLoop(1)
        EndIf
    WEnd
    $Headers = 'GET '&$page&' HTTP/1.1'&@CRLF
    $Headers &= "Host: " & $host & @CRLF
    $Headers &= $Language &@CRLF
    ;Accept-Language	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    ;$Headers &= $Inf&@CRLF
    $Headers &= 'Connection: close'&@CRLF&@CRLF
    While 1
        $Bytes = TCPSend($socket,$Headers)
        If $Bytes = 0 Then
            ConsoleWrite(@CRLF&'==============='&@CRLF&'Не удаётся отослать инФормацию! Новая попытка'&@CRLF&'==============='&@CRLF)
            Sleep(5000)
        Else
            ExitLoop(1)
        EndIf
    WEnd

    while 1
        $RecBuff = TCPRecv($socket,1)
        If @error <> 0 Then ExitLoop(1)
        If $RecBuff <> '' Then $HTML &= $RecBuff
    WEnd

    Return $HTML
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Нужно перекодировать строку, используйте _Encoding_UTF8ToANSI из Encoding.au3.
 
Автор
A

AlexxxRu

Знающий
Сообщения
19
Репутация
6
Код:
#include <Encoding.au3>
$a= StringRegExp($Html,'<h2>(.+?)</h2>',3)
$a[0] = _Encoding_UTF8ToANSI($a[0])
 
Верх