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