[英]How to read UTF-8 enconding with cpp-netlib when not specified in html head
我正在嘗試使用cpp-netlib(在Linux上加上boost)來獲取某些網站的內容。 netlib和boost均為最新版本(本周安裝,沒有編譯問題)。
關鍵是:在某些站點上,我獲得了正確的UTF-8編碼(ç,á,î等字符正確顯示)。 在其他站點上,這些字符以“?”表示。 里面有黑鑽石。 我注意到前者在標頭中有一個關於utf-8編碼的顯式html標記,而其他人則沒有。
在對文檔和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”的部分。
對新手感到抱歉,但是任何幫助或評論都將不勝感激。
謝謝。
好吧,最后,我想我的問題根本沒有道理。 事實是,我正在嘗試閱讀一些網站內容,因此需要將該內容放入txt文件中。 在寫文件之前,我正在寫到終端,在那里我看到了奇怪的字符... netlib google小組的某人告訴我,我應該只寫一個文件,不會有問題。 而且沒有。 所有非ascii字符均正常寫入文件。
最后,問題不在於閱讀utf編碼(正在閱讀),而是關於如何在終端中看到它。 盡管這不是真正的問題,但是由於我真正需要的是將utf編碼在文件中。 這樣就可以直接使用。
我希望它至少可以幫助像我一樣陷入困境的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.