一尘不染

Python-如何确定文本的编码?

python

我收到了一些经过编码的文本,但是我不知道使用了什么字符集。有没有办法使用Python确定文本文件的编码?如何检测 C#处理的文本文件的编码/代码页。


阅读 502

收藏
2020-02-09

共1个答案

一尘不染

但是,某些编码针对特定语言进行了优化,并且语言不是随机的。某些字符序列始终弹出,而其他字符序列毫无意义。一个会说英语的人,打开报纸发现“ txzqJv 2!dasd0a QqdKjvz”,会立即意识到这不是英语(即使它完全由英文字母组成)。通过研究大量“典型”文本,计算机算法可以模拟这种流利程度,并对文本的语言做出有根据的猜测。

有一个chardet库使用该研究来尝试检测编码。chardetMozilla中自动检测代码的端口。

你也可以使用UnicodeDammit。它将尝试以下方法:

  • 在文档本身中发现的编码:例如,在XML声明或(对于HTML文档)http等效的META标记中。如果Beautiful Soup在文档中找到这种编码,它将从头开始再次解析该文档,然后尝试使用新的编码。唯一的例外是,如果你明确指定了一种编码,并且该编码确实起作用:那么它将忽略它在文档中找到的任何编码。
  • 通过查看文件的前几个字节来嗅探编码。如果在此阶段检测到编码,它将是UTF- *编码,EBCDIC或ASCII之一。
  • chardet库嗅探到的编码(如果已安装)。
  • UTF-8
  • Windows-1252
2020-02-09