0
我的數據庫中的一些數據已被插入錯誤的編碼。正確錯誤編碼的Unicode字符串
當我獲取數據和轉儲它,我獲得以下的輸出:
$VAR1 = "\x{fffd}U/mL"
如何糾正它嗎? 我在Perl中試過decode_utf8
,decode_utf8
。
我的數據庫中的一些數據已被插入錯誤的編碼。正確錯誤編碼的Unicode字符串
當我獲取數據和轉儲它,我獲得以下的輸出:
$VAR1 = "\x{fffd}U/mL"
如何糾正它嗎? 我在Perl中試過decode_utf8
,decode_utf8
。
decode_utf8
假設你有正確的八位字節。如果你從錯誤的數據開始,它不會修復它。一般來說,這是你不能高度自動化的東西,因爲這些數據可能會以很多方式混亂。
你知道這個字符串應該是什麼嗎?看起來你失去了一些信息,因爲'U + FFFD'是*替換字符* whis用來代替無效的Unicode字符 – Borodin
是的:我們需要相應的輸入和輸出字符 – ssr1012
它可能太晚了;信息可能會丟失。 1)這是什麼類型的數據庫? 2)你從'使用Data :: Dumper獲得什麼?本地$ Data :: Dumper :: Useqq = 1; print(Dumper($ row));'當你從數據庫中獲取這個值時?確保在執行此調試時不使用'mysql_enable_utf8'選項或類似的選項。 – ikegami