Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   проблемка с wininet (https://forum.antichat.xyz/showthread.php?t=97962)

_nic 25.12.2008 23:29

проблемка с wininet
 
Обьясните,в чем прикол с кодировкой при использование wininet
Такой вот код
Код:

char *data=new char[1024*1024]; DWORD rb;
char agent[1024]="User-Agent: Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1";
HINTERNET II=InternetOpen(agent,INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,0,0,0);
HINTERNET CC=InternetConnect(II,"site.com",INTERNET_DEFAULT_HTTP_PORT,0,0,INTERNET_SERVICE_HTTP,0,0);
HINTERNET RR=HttpOpenRequest(CC,"GET","index.php", NULL,0,0,INTERNET_FLAG_KEEP_CONNECTION,1);
HttpSendRequest(RR,0,0,0,0);
InternetReadFile(RR,data,1024*1024,&rb);
InternetCloseHandle(II);
InternetCloseHandle(CC);
InternetCloseHandle(RR);
Memo1->Text=AnsiString(data);
HANDLE h=CreateFile("\\\\.\\C:\\1.html",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_FLAG_RANDOM_ACCESS,NULL);
WriteFile(h,data,strlen(data),&rb,0);
CloseHandle(h);

В мемо тект выглядит нормально.А если открыть файл в опере то там крякозяблы из за левой(хз какой)кодировки.Как задать нужную кодировку?

neprovad 26.12.2008 01:36

браузер сам должен выбрать нужную кодировку, исходя из содержимого файла. если не выбирает, значит, думаю содержимое кривое в файле

slesh 26.12.2008 10:16

Вообще кодировка может быть любой, начиная от win-1251 и заканчивая юникодом. Это зависит с какого сайта тянеш данные. По этому в файле у тебя всё будет в той кодировке которую пришлет сайт. Вообще в начале страницы должен распологаться тип кодировки типа (<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >), и если его нет, то могут возникнуть глюки вот такие вот. Особенно в рускоязычных прогах, где подефолту стоит кодировка win-1251. Так что в wininetом всё впорядке )

desTiny 26.12.2008 16:05

Цитата:

Сообщение от slesh
Вообще в начале страницы должен распологаться тип кодировки типа (<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >)

Так вроде на самом деле не рекомендуется делать, ибо, к примеру, некоторые проксики перекодирую страницу, и тогда что-то нехорошее может произойти

Delimiter 26.12.2008 18:21

а с сайта идет случайно не с gzip-ованный??? 8)))
а то ведб можно и на зипованный код тупо пялиться! 8)))

... нада тестировать... с вининетом (сможет он gzip на лету обработать) :cool:


Время: 18:04