0

我有一些这样的字符串:

u'Thaïlande'

这是“Thaïlande”,我不知道它是如何编码的,但我需要将它带回“Thaïlande”,然后对其进行 URL 编码。

有没有办法猜测一个字符串是否已经用 Python 2 编码?

4

1 回答 1

3

你有所谓的Mojibake。您可以使用统计分析来查看其中是否存在以 UTF-8 字节为典型组合的异常数量的 Latin-1 字符,或者其中是否存在任何 CP1252 特定字符。

如果检测到 Mojibake ,已经有一个包可以为您执行此操作ftfy修复损坏::

ftfy 的目标是接收错误的 Unicode 并输出良好的 Unicode,以用于您的 Unicode 感知代码。

ftfy.fix_encoding() 函数将寻找 mojibake 的证据,并在可能的情况下撤消产生它的过程以取回应该存在的文本。

这听起来不可能吗?真的不是。UTF-8 是一种精心设计的编码,当它被滥用时会很明显,而 mojibake 的字符串通常包含我们恢复原始字符串所需的所有信息。

于 2016-10-13T09:16:57.813 回答