用UTF-8文本修复mojibakes

时间:2018-01-24 20:11:22

标签: python utf-8 character-encoding mojibake

我有一个带有葡萄牙文的文件,格式为UTF-8。不知何故,谁生成的文件选择了错误的编码,文本中充满了mojibake

IDENTIFICAÌàÌÄO instead of identificação
André instead of André

自动工具看不到文件有什么问题。我尝试用Python package ftfy修复它无济于事。 除了手动替换所有不正确的字符外,我该如何修复此文件?

1 个答案:

答案 0 :(得分:0)

“André”代替“André”是对UTF-8编码的Latin-1解释。 您可以通过反转编码/解码来修复它:

>>> 'André'.encode('latin-1').decode('utf-8')
'André'

遵循此模式的所有情况都可以像这样修复。

但是,我不能解释另一种情况(“ç”代表“ç”而“Ì”代表“ã”),因此无法提供解决方案。 如果你能找到一个编解码器,其中“Ì”,“à”和“Ä”分别具有代码点C3,A7和A3,那么你可以用它而不是Latin-1来修复文本。