发现一个有趣的Python模块:Character

写爬虫时厌倦了与各种各样变得乱七八糟的编码打交道?有没有办法让程序自动识别到底应该用什么编码方式呢?今天就发现了这个好玩的:Character 。它可以猜测出一段字符使用的编码类型,并给出猜测的置信度。

这个东西的思路是当面对一串不知道编码信息的字节流的时候,尝试着确定一种编码方式以使我们能够读懂其中的文本内容。它的基本原理很有趣:语言并非随机存在的。有一些字符序列在某种语言中总是会出现,而其他一些序列对该语言来说则毫无意义。一个熟练掌握英语的人翻开报纸,然后发现“txzqJv 2!dasd0a QqdKjvz”这样一些序列,他会马上意识到这不是英语(即使它完全由英语中的字母组成)。通过研究许多具有“代表性(typical)”的文本,计算机算法可以模拟人的这种对语言的感知,并且对一段文本的语言做出启发性的猜测。

Character 来源于Mozilla Firefox 源码中公开的一个自动检测字符编码的库 universalchardet 作者将其python化了。

一个简单的例子代码:

>>> import chardet

>>> qq = chardet.detect(“伟大的中国人民”)
>>> qq
{‘confidence’: 0.98999999999999999, ‘encoding’: ‘GB2312′}

Character 的主页在这里

This entry posted in python 基础, python 模块. Entry Tags: Bookmark the permalink. 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>