2016-06-01 43 views
0

我的數據庫中的一些數據已被插入錯誤的編碼。正確錯誤編碼的Unicode字符串

當我獲取數據和轉儲它,我獲得以下的輸出:

$VAR1 = "\x{fffd}U/mL" 

如何糾正它嗎? 我在Perl中試過decode_utf8decode_utf8

+4

你知道這個字符串應該是什麼嗎?看起來你失去了一些信息,因爲'U + FFFD'是*替換字符* whis用來代替無效的Unicode字符 – Borodin

+0

是的:我們需要相應的輸入和輸出字符 – ssr1012

+2

它可能太晚了;信息可能會丟失。 1)這是什麼類型的數據庫? 2)你從'使用Data :: Dumper獲得什麼?本地$ Data :: Dumper :: Useqq = 1; print(Dumper($ row));'當你從數據庫中獲取這個值時?確保在執行此調試時不使用'mysql_enable_utf8'選項或類似的選項。 – ikegami

回答

2

decode_utf8假設你有正確的八位字節。如果你從錯誤的數據開始,它不會修復它。一般來說,這是你不能高度自動化的東西,因爲這些數據可能會以很多方式混亂。

相關問題