簡體   English   中英

如何將ISO 8859-1字符轉換為UTF-8

[英]how to convert ISO 8859-1 Characters to UTF-8

我使用CURL從另一個站點獲取內容,但是我不知道為什么它會自動從UTF-8轉換為ISO 8859-1,如下所示:

網站:abc.com:

CửaHàngChip Chip:RộnràngGiGiángsinhvớinhữngvậtphẩmtrangtríNoelđầymàusắccủaCHIPCHIP GIFT SHOP

但是,當我使用CURL從該網站獲取內容時,我得到了關注:

Cửa Hàng Chip Chip: Rộn ràng đón Giáng sinh với những vật phẩm trang trí Noel đầy màu sắc của CHIPCHIP GIFT SHOP

那么如何將其轉換為UTF-8?

您可以嘗試以下方法:

html_entity_decode($string)

在此處查看更多信息: html_entity_decode

您的文件未轉換為其他編碼。 他們正在使用HTML字符實體 您需要轉換這些實體 ,例如é 到UTF-8,例如é。 如果您甚至需要執行此操作,則在轉換為UTF-8之后,這需要多一行代碼。

我建議使用iconv

iconv --list提供所有已知編碼的列表,然后可以使用iconv -f FROM_ENCODING -t TO_ENCODING進行轉換。 它也可以從stdin中讀取,因此可以插入curl

但是關於您的問題的評論:似乎文件作者並不在乎使用正確的編碼,而是決定堅持使用(舊樣式?) &auml和其他東西。

將您的字符串放入變量中並使用以下函數。

$var = "";
echo utf8_encode($var);

從您粘貼的行來看,問題似乎出在HTML實體上,而不是字符編碼上。 編碼的字符對我來說很好。

您需要將這些HTML實體轉換為編碼的char。 使用哪種工具將取決於您的環境或編程語言。 我不認為僅靠CURL就可以做到。

PHP具有htmlspecialchars_decode() HTMLParser模塊中的Python unescape()

curl不轉換任何內容,按原樣下載內容

您所看到的是字符實體,有效的html,以及將瀏覽器轉換為可讀形式的瀏覽器。

您可以通過在瀏覽器中打開curl保存的文件來進行檢查。 它看起來像實時頁面。

暫無
暫無

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

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