簡體   English   中英

卷曲:從具有錯誤字符集的站點獲取UTF-8數據

[英]Curl: get UTF-8 data from site with incorrect charset

我抓了一些偶爾在標題中有UTF-8字符的網站,但沒有指定UTF-8作為字符集(qq.com就是一個例子)。 當我在瀏覽器中查看網站時,我要復制的數據(即標題)看起來是正確的(日文或中文......不太確定)。 我可以復制標題並將其粘貼到終端中,它看起來完全一樣。 我甚至可以將它寫入數據庫,當我從數據庫中檢索它時,它看起來仍然相同,並且正確。

但是,當我使用cURL時,打印的數據是錯誤的。 我可以從命令行運行cURL或者使用PHP ..當它打印到終端時顯然是不正確的,當我將它存儲到數據庫時它仍然是這樣(請記住:終端可以正確顯示這些字符)。 我已經嘗試了以下所有符合條件的組合:

  • CURLOPT_BINARYTRANSFERtrue
  • mb_convert_encoding($html, 'UTF-8')
  • utf8_encode($html)
  • utf8_decode($html)

這些都不會按預期顯示字符。 這非常令人沮喪,因為只要訪問該網站我就能輕松獲得正確的角色,但是cURL不能。 我已經閱讀了很多建議,比如這個: 如何使用不同CHARSET的網站在PHP中使用CURL獲取網頁標題?

一般來說,解決方案似乎是“將數據轉換為UTF-8”。 說實話,我實際上並不知道這意味着什么。 上述功能不能將數據轉換為UTF-8嗎? 為什么不是UTF-8? 它是什么,為什么它在某些情況下會正常顯示,而不是cURL?

你有沒有嘗試過 :

$html = iconv("gb2312","utf-8",$html);

gb2312取自qq.com標題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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