我如何使用Python解决毫无用处的编码疯狂

关于文本文件中的“编码检测”,存在一个非常古老的问题 ,该问题已被Chardet之类的程序部分解决。

如今,人们可能会争辩说这个问题实际上不是一个问题。 确实,
像HTTP规范一样,大多数标准都提供了一种声明编码的方法。

但是实际情况有所不同,互联网的很大一部分仍然具有未知编码的内容。 例如,可以指出字幕字幕(SRT)。

这就是为什么像Requests这样的流行软件包将Chardet列为猜测远程资源上明显编码的要求的原因。

但是有一个问题! 首先,像Chardet这样的库是不可靠的,
没有维护,有时甚至被所有者公开不喜欢。

几乎所有流行的库都使用相同的想法,它们想要检测的每个代码页或编码都会创建一个特定的探针。 他们是
尝试识别原始编码。

我不喜欢的第一件事是每个编码使用单个探测器的想法
可能导致硬编码规范的表格。 其次,我是
确信我们不应该在乎原始编码,
因为两个不同的表可以产生两个相同的文件。

这是我带来另一种选择的地方。 疯狂的一件事使用蛮力从给定的内容中获得感觉。 对于每种编码都有。

  1. 排除根本不适合内容的编码
  2. 打开后测量可观察到的混乱,确定“ жГЪСЭЯн”之类的东西
  3. 通过字母出现频率测量连贯性

通过不按编码创建特定的探针,我能够提供
检测大约90种编码! 相较于两倍
Chardet实际上更可靠。

因此,我向您介绍Charset Normalizer 。 真正的第一个通用字符集检测器。 或者,如果当前很忙还是什么,请通过https://charsetnormalizerweb.ousret.now.sh/在线进行尝试

From: https://hackernoon.com/how-i-used-python-to-solve-declareless-encoding-madness-hk1k42d3o

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值