修复中文无法解码问题之python库Ftfy

安装

pip install ftfy

举例

下面是ftfy所能做的一些例子

​ tfy可以修复mojibake(编码混合),通过检测显然是UTF-8但被解码为其他字符的字符的模式:

>>> import ftfy
>>> ftfy.fix_text('✔ No problems')
'✔ No problems'

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

Ftfy可以同时修复多层mojibake

>>> ftfy.fix_text('The Mona Lisa doesn’t have eyebrows.')
"The Mona Lisa doesn't have eyebrows."

它可以修复已经在上面应用了curly quotes应用在它的顶部,直到这些引号没有卷曲时,才能对其进行一致的解码:

>>> ftfy.fix_text("l’humanité")
"l'humanité"

ftfy可以修复mojibake,它将包含字符U+A0 (non-breaking space),但U+A0被转换为ASCII空格,然后与下面的另一个空格组合:

>>> ftfy.fix_text('Ã\xa0 perturber la réflexion')
'à perturber la réflexion'
>>> ftfy.fix_text('à perturber la réflexion')
'à perturber la réflexion'

ftfy还可以解码HTML实体出现在HTML之外,甚至在实体已被错误大写的情况下:

>>> # by the HTML 5 standard, only 'PÉREZ' is acceptable
>>> ftfy.fix_text('PÉREZ')
'PÉREZ'

​ 这些修复并不适用于所有情况,因为ftfy有一个强烈的目标,即避免误报——它永远不应该将正确解码的文本更改为其他内容。

​ 下面的文本可以在Windows-1252中编码,并以UTF-8解码,它将解码为MARQUɅ。 然而,原来的文本已经是合理的,所以它是不变的。

>>> ftfy.fix_text('IL Y MARQUÉ…')
'IL Y MARQUÉ…'

​ 以上的例子都是出自Fity文档中,我这边仅仅只是将其翻译了下,作为案例给大家参考下,具体的大家可以参考下面的文档。

ftfy: fixes text for you


欢迎关注公众号:【时光python之旅】 (在这里你能学到我的所见、所闻、所思、所学)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光亦不回首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值