python中用于非Unicode和非ASCII的HTML的综合字符替换模块



python是否有一个全面的字符替换模块,可以在字符串中查找所有非ASCII或非Unicode字符,并用ASCII或Unicode等效字符替换它们?在编码或解码过程中对"忽略"参数的这种舒适感是疯狂的,但同样,在未翻译字符的每个地方都有一个"?"。

我正在寻找一个模块,它可以找到令人讨厌的字符并使它们符合要求的任何标准。我意识到现存的字母和编码的数量使这有点不可能,但肯定有人试过吗?即使是基本的解决办法也比维持现状要好。

这意味着数据传输的简化是巨大的。

我不认为你想要的真的可能 - 但我认为有一个不错的选择。

UnicodeData 有一个"规范化"方法,可以优雅地为您降级文本......

import unicodedata
def gracefully_degrade_to_ascii( text ):
    return unicodedata.normalize('NFKD',text).encode('ascii','ignore')

假设您使用的字符集已经映射到Unicode中 - 或者至少可以映射到Unicode中 - 您应该能够使用此模块将该文本的Unicode版本降级为ASCII或UTF-8(它也是标准库的一部分)

完整文档 - http://docs.python.org/library/unicodedata.html

查看任何单个字符并猜测其编码将很难,并且可能不是很准确。但是,您可以使用 chardet 来尝试检测整个文件的编码。然后,您可以使用字符串解码()和encode()方法将其编码转换为UTF-8。

http://pypi.python.org/pypi/chardet

UTF-8 向后兼容 ASCII,所以这没什么大不了的。

最新更新