python自动检测文档内码[zz]

python 2.x以上自带内码检测模块chardet,是从firefox中移植的,判定正确率比较高。

chardet.detect(buffer)会返回一个字典。

chardet.detect(rawdata)
{’confidence’: 0.98999999999999999, ‘encoding’: ‘GB2312’}
其中confidence是可信度,encoding是编码。

下面是用法示例。

python 2.x以上自带内码检测模块chardet,是从firefox中移植的,判定正确率比较高。

chardet.detect(buffer)会返回一个字典。

chardet.detect(rawdata)
{’confidence’: 0.98999999999999999, ‘encoding’: ‘GB2312’}
其中confidence是可信度,encoding是编码。

下面是用法示例。

1 #!/usr/bin/env python
2 # -*- coding: UTF-8 -*-
3 # author ablozhou <a title="" href="http://blog.csdn.net/ablo_zhou" target="_blank">周海汉</a>
4 # ablozhou@gmail.com
5 # http://blog.csdn.net/ablo_zhou
6 # 2010.3.14
7 import chardet
8 import urllib
9 if __name__ == __main__:
10     mydet = {
11         SHIFT_JIS:http://www.mankan.or.jp/,
12         GB2312:http://g.cn/,
13         Big5:http://www.programmer-club.com.tw/,
14         UTF8:http://zh.wikipedia.org/
15         }
16     for url in mydet.values():
17         print url
18         rawdata = urllib.urlopen(url).read()
19         enc = chardet.detect(rawdata)
20         print enc[encoding]

 

执行:

python encdet.py
http://zh.wikipedia.org/
utf-8
http://www.mankan.or.jp/
SHIFT_JIS
http://g.cn/
GB2312
http://www.programmer-club.com.tw/
Big5

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s