簡體   English   中英

將ISO-8859-1轉換為UTF-8問題

[英]Translating ISO-8859-1 to UTF-8 problem

我的一個項目是從網上提取文檔並閱讀。 本文檔由第三方提供,不會更改(內容會更改,但格式和其他內容不會更改)。 問題在於此文檔包括從Word(UTF-8)復制並粘貼的內容,但是該文檔以ISO-8858-1編碼,因此這些字符以“?”的形式保存到數據庫中。

如果我跳過文本,然后將其重新編碼為UTF-8,則不會得到智能引號和破折號,而只會得到兩個垃圾字符。

如何將帶有UTF-8字符的ISO-8859-1文檔轉換回UTF-8,以便可以按最初創建的樣子顯示它?

$fixed = mb_convert_encoding($broken, "UTF-8", "ISO-8859-1");

不知道它是否可以正確處理8859中嵌入的UTF-8,但這是“正常”的操作方式。 手冊頁在這里 旋轉一下,看看情況是否變得更清潔或更整齊。

我在這里找到了解決方案: PHP:將“'”字符從ISO-8859-1轉換為UTF-8時出現問題

該服務器聲稱其服務於ISO-8859-1,但實際上是Windows-1252,可以毫無問題地轉換為UTF-8。

幸運的是,ISO 8859-1是8位透明的。 因此,您可以使用iconvmb_convert_encodingutf8_encode解碼內容。

我不確定“我越過文字”的意思,但是如果這確實是UTF-8,指定為ISO 8859-1,請嘗試消除所有中間文字操作。 如果仍然失敗,請提供一個(簡短)輸入文檔的示例。 可能不是將UTF-8實際指定為ISO 8859-1。

暫無
暫無

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

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