Как читать UTF-8 с cpp-netlib, если он не указан в заголовке html

Я пытаюсь получить содержимое некоторых веб-сайтов с помощью cpp-netlib (плюс boost, на linux). И netlib, и boost являются последними версиями (установлены на этой неделе, проблем с компиляцией нет).

Дело в том, что с некоторых сайтов я получаю правильную кодировку UTF-8 (символы, такие как ç, á, î и т. Д. Отображаются правильно). С других сайтов эти символы появляются как "?" внутри черные бриллианты. Я заметил, что у создателей есть явный тег html внутри заголовка о кодировке UTF-8, в то время как у других нет.

Я попробовал несколько вещей с "запросом заголовка" в моем коде, немного пройдя через документы и Google, но, насколько я не знаю, что делал, у меня ничего не получилось.

Я использую очень простой код, приведенный в стандартных примерах. Следующее:

включает в себя, пространства имен...

  network::http::client client;
  network::http::client::request request(url);  
  //boost::network::add_header(request, "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
  request << network::header("Connection", "close");
  //request << boost::network::header("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
  //request << boost::network::header("Accept", "application/x-www-form-urlencoded; charset=utf-8");
  network::http::client::response response = client.get(request);
  content = body(response);
  cout << content;

Закомментированные части - это те, которые я пытался "изменить заголовок", чтобы сделать запрос обработанным как "UTF-8" (так я думал).

Извините за новизну, но любая помощь или комментарий будут очень признательны.

Благодарю.

1 ответ

Решение

Ну, в конце концов, я думаю, мой вопрос просто не имеет смысла. Дело в том, что я пытался читать контент некоторых веб-сайтов, и мне нужно было поместить этот контент в текстовый файл. Перед записью в файл я писал в терминал, где я видел странные символы... Кто-то из группы netlib google сказал мне, что я должен просто записать файл, и проблем не будет. И не было. Все не-ascii символы записываются в файл как обычно.

В конце концов, проблема была не в чтении utf enconded (это было чтение), а в том, чтобы увидеть его как таковой в терминале. Хотя это и не проблема, так как мне действительно нужно, чтобы все было в файле. И он работает как таковой просто из коробки.

Надеюсь, это поможет кому-то, кто застрял так же, как и я.

Другие вопросы по тегам