SetWindowText показать нераспознаваемый код из InternetReadFile - PullRequest
0 голосов
/ 06 февраля 2011

Я хочу преобразовать исходный код веб-страницы в кодировке utf-8, загруженный с помощью InternetReadFile, в utf-16, который может распознавать Windows.

Вот фрагмент кода:

HINTERNET hConnect,hSession;
char *szBuffer = malloc(WEBSOURCE_SIZE);
wchar_t *wszBuffer = (wchar_t *)malloc(WEBSOURCE_SIZE);
TCHAR szStr[100];
DWORD dwSize=0;
DWORD dwDownloaded;
if(szBuffer == NULL)
{
    MessageBox(hwndGetBtn,TEXT("error"),TEXT("Error"),MB_ICONHAND);
}
GetWindowText(hwndUrlEdt,szStr,sizeof(szStr)/sizeof(TCHAR));
hSession = InternetOpen(TEXT("testWinINet"), PRE_CONFIG_INTERNET_ACCESS, NULL, INTERNET_INVALID_PORT_NUMBER, 0);
hConnect = InternetOpenUrl(hSession,szStr,NULL,0,INTERNET_FLAG_DONT_CACHE,0);
ZeroMemory(szBuffer,WEBSOURCE_SIZE);
while (InternetReadFile(hConnect,szBuffer,WEBSOURCE_SIZE,&dwDownloaded))
{
    if (0==dwDownloaded) break;
    szBuffer[dwDownloaded]=0;
}
len=MultiByteToWideChar(CP_UTF8,0,szBuffer,-1,NULL,0);
MultiByteToWideChar(CP_UTF8,0,szBuffer,-1,wszBuffer,sizeof(wszBuffer));

SetWindowText(hwndShowEdt,wszBuffer);

hwndShowEdtВ поле ввода всегда отображается неузнаваемый код, пока веб-страница имеет кодировку utf-8.

, поэтому кто-нибудь может найти ошибку в моем коде?

1 Ответ

0 голосов
/ 31 июля 2011

кодировка веб-страницы может быть распознана только по HTML meta tag:

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...