PDA

Просмотр полной версии : проблемка с wininet


_nic
25.12.2008, 23:29
Обьясните,в чем прикол с кодировкой при использование 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_H TTP,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
Вообще в начале страницы должен распологаться тип кодировки типа (<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >)
Так вроде на самом деле не рекомендуется делать, ибо, к примеру, некоторые проксики перекодирую страницу, и тогда что-то нехорошее может произойти

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

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