python的字符串編碼識(shí)別模塊(第三方庫):
官方地址: http://pypi.python.org/pypi/chardet
import chardet
import urllib
# 可根據(jù)需要,選擇不同的數(shù)據(jù)
TestData = urllib.urlopen('http://www.baidu.com/').read()
print chardet.detect(TestData)
# 運(yùn)行結(jié)果:
# {'confidence': 0.99, 'encoding': 'GB2312'}
運(yùn)行結(jié)果表示有99%的概率認(rèn)為這段代碼是GB2312編碼方式。
import urllib
from chardet.universaldetector import UniversalDetector
usock = urllib.urlopen('http://www.baidu.com/')
# 創(chuàng)建一個(gè)檢測對(duì)象
detector = UniversalDetector()
for line in usock.readlines():
# 分塊進(jìn)行測試,直到達(dá)到閾值
detector.feed(line)
if detector.done: break
# 關(guān)閉檢測對(duì)象
detector.close()
usock.close()
# 輸出檢測結(jié)果
print detector.result
# 運(yùn)行結(jié)果:
# {'confidence': 0.99, 'encoding': 'GB2312'}
應(yīng)用背景,如果要對(duì)一個(gè)大文件進(jìn)行編碼識(shí)別,使用這種高級(jí)的方法,可以只讀一部,去判別編碼方式從而提高檢測速度。如果希望使用一個(gè)檢測對(duì)象檢測多個(gè)數(shù)據(jù),在每次檢測完,一定要運(yùn)行一下detector.reset()。清除之前的數(shù)據(jù)。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

