簡體   English   中英

未在html頭中指定時如何讀取與cpp-netlib對應的UTF-8

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM