我正在尝试使用 cpp-netlib (在 linux 上加上 boost)获取一些网站的内容。netlib 和 boost 都是最新版本(本周安装,没有编译问题)。
关键是:从某些站点,我得到了正确的 UTF-8 编码(ç、á、î 等字符正确显示)。在其他网站上,这些字符以“?”的形式出现。黑色钻石里面。我注意到前者在标头中有一个关于 UTF-8 编码的显式 html 标签,而另一个则没有。
在浏览了一些文档和谷歌之后,我在我的代码中尝试了一些“标题请求”,但尽管我不知道我在做什么,但我没有成功。
我正在使用标准示例中给出的非常简单的代码。如下:
包括,命名空间...
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”的部分(所以我想)。
对不起新手,但任何帮助或评论将不胜感激。
谢谢。