找到编码的类型

时间:2011-02-03 21:00:49

标签: python character-encoding

我想知道我们是否可以找出用于编码字符串的编码类型?或者至少找出python3.x中给定的实体或单词是字符串还是字节。 提前谢谢。

2 个答案:

答案 0 :(得分:8)

我会推荐chardet库。它基于some work from Mozilla,似乎符合您的需求。

Usage is pretty easy

>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}

此页面上还包含更多复杂的用例,但在核心,您可以简单地传递一个字符串并让它返回一组潜在的编码以及他们对该猜测的信心。

答案 1 :(得分:3)

要确定它的字符串或字节是否简单:

isinstance(x, str)

VS

isinstance(x, bytes)

一旦你确定它是字节,那么你可以像丹尼尔在他的回答中所说的那样使用chardet来猜测它是什么编码。然而,这在短文本上是非常不可靠的,但是在较长的文本上它可以正常工作。