前言
在互聯(lián)網(wǎng)的世界里,每個頁面都使用了編碼,但是形形色色的編碼讓我們的代碼何以得知其棉麻格式呢?charset將很好的解決這個問題。
1. chardet
chardet是Python社區(qū)提供了一個類庫包,方便我們在代碼中動態(tài)檢測當(dāng)前頁面或者文件中的編碼格式信息。接口非常的簡單和易用。
Project主頁: https://github.com/chardet/chardet
文檔主頁: http://chardet.readthedocs.io/en/latest/usage.html
2. 使用示例
Notice: 筆者使用的python/95401.html">python/52886.html">python 3.5 +
Case 1: 檢測特定頁面的編碼格式
import chardetimport urllib.requestTestData = urllib.request.urlopen('http://www.baidu.com/').read()print(chardet.detect(TestData))輸出結(jié)果:
{'confidence': 0.99, 'encoding': 'utf-8'}結(jié)果分析, 其準(zhǔn)確率99%的概率,編碼格式為utf-8
使用說明:detect()為其關(guān)鍵方法
Case 2: 增量檢測編碼格式
import urllib.requestfrom chardet.universaldetector import UniversalDetectorusock = urllib.request.urlopen('http://yahoo.co.jp/')detector = UniversalDetector()for line in usock.readlines():detector.feed(line)if detector.done: breakdetector.close()usock.close()print(detector.result)輸出結(jié)果:
{'confidence': 0.99, 'encoding': 'utf-8'} 說明: 為了提高預(yù)測的準(zhǔn)確性,基于dector.feed()來實(shí)現(xiàn)持續(xù)的信息輸入,在信息足夠充足之后結(jié)束信息輸入,給出相應(yīng)的預(yù)測和判斷。
如果需要復(fù)用detector方法,需要進(jìn)行detector.reset()進(jìn)行重置,從而可以復(fù)用。
Case 3: 在安裝chardet之后,可以基于命令行來檢測文件編碼
% chardetect somefile someotherfilesomefile: windows-1252 with confidence 0.5someotherfile: ascii with confidence 1.0
在系統(tǒng)層面,可以直接基于命令行來進(jìn)行文件編碼檢測,非常簡單易用。
3. 總結(jié)
chardet是非常易用和功能強(qiáng)大的Python包,相信大家在web世界中遨游之時,肯定會用上這個chardet的。 如有問題,歡迎大家反饋給我。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選