是否有一个全面的字符替换模块用于python,它在字符串中查找所有非ascii或非unicode字符,并用ascii或unicode等效项替换它们?在编码或解码过程中对“忽略”参数的这种舒适感是疯狂的,但同样也是“?”在每个非翻译角色的地方。
我正在寻找一个找到令人讨厌的字符的模块,并将它们符合要求的标准。 我意识到现有的字母和编码数量使得这有点不可能,但是肯定有人对它进行了尝试?即使是初步的解决方案也会比现状更好。
这意味着数据传输的简化是巨大的。
答案 0 :(得分:4)
我不认为你想要什么是真的可能 - 但我认为有一个不错的选择。
unicodedata有一个'normalize'方法,可以优雅地降级文本...
import unicodedata
def gracefully_degrade_to_ascii( text ):
return unicodedata.normalize('NFKD',text).encode('ascii','ignore')
假设您正在使用的字符集已映射到unicode - 或者至少可以映射到unicode - 您应该能够使用此模块将该文本的unicode版本降级为ascii或utf-8(它的一部分)也是标准库)
答案 1 :(得分:0)
要查看任何单个字符并猜测其编码会很难并且可能不太准确。但是,您可以使用chardet尝试检测整个文件的编码。然后,您可以使用字符串decode()和encode()方法将其编码转换为UTF-8。
http://pypi.python.org/pypi/chardet
UTF-8向后兼容ASCII,因此不会有什么大不了的。