Как получить кодовую страницу из ответа HTTP cURL? - PullRequest
0 голосов
/ 22 июня 2011

Я использую lib-cURL в качестве HTTP-клиента для извлечения различных страниц (может быть любым URL).
Обычно данные поступают в виде строки UTF-8, а затем я просто вызываю «MultiByteToWideChar», и это хорошо работает.

Однако, некоторые веб-страницы все еще используют кодировку кодовых страниц, и я вижу тарабарщину, если пытаюсь конвертировать эти страницы в UTF-8.

Есть ли простой способ извлечь кодовую страницу из данных? или мне придется сканировать его вручную (для «encoding =»), а затем перевести соответственно.

Если так, как я могу получить идентификатор кодовой страницы из имени ( Идентификаторы кодовой страницы )?

Спасибо
Омер

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Есть несколько мест, где документ может указать свою кодировку:

  • заголовок Content-Type HTTP
  • (необязательное) объявление XML
  • метатег Content-Type внутри заголовка документа
  • для документов HTML5 метатег charset.

Возможно, я забыл еще больше.

В конце концов, определить фактическую кодировку довольно сложно. Вы действительно не должны делать это самостоятельно, но используйте высокоуровневые библиотеки для извлечения и анализа HTML-контента. Я уверен, что они доступны даже для C ++, даже если они должны быть похищены из среды браузера. :)

0 голосов
/ 24 июня 2011

Я использовал DetectInputCodepage в IMultiLanguage2 интерфейс , и он отлично работал!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...