Как читать 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 (это было чтение), а в том, чтобы увидеть его как таковой в терминале. Хотя это и не проблема, так как мне действительно нужно, чтобы все было в файле. И он работает как таковой просто из коробки.
Надеюсь, это поможет кому-то, кто застрял так же, как и я.