国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用chardet判斷字符串編碼的方法

2020-02-23 00:19:43
字體:
來源:轉載
供稿:網友

本文實例講述了python使用chardet判斷字符串編碼的方法。分享給大家供大家參考。具體分析如下:

最近利用python抓取一些網上的數據,遇到了編碼的問題。非常頭痛,總結一下用到的解決方案。

linux中vim下查看文件編碼的命令 set fileencoding
python中一個強力的編碼檢測包 chardet ,使用方法非常簡單。linux下利用pip install chardet實現簡單安裝

import chardetf = open('file','r')fencoding=chardet.detect(f.read())print fencoding

fencoding輸出格式 {'confidence': 0.96630842899499614, 'encoding': 'GB2312'} ,只能判斷是否為某種編碼的概率。比較準確的結果了。輸入參數為str類型。

了解python中str的編碼后可以利用decode和encode來實現編碼的轉換。

一般流程是str利用decode方法根據str的編碼將其解碼為unicode字符串類型,然后利用encode根據特定的編碼將unicode字符串類型轉換為特定的編碼。python中str和unicode屬于兩種不同的類型,如下。

一般情況下window默認編碼gbk,linux默認編碼utf8
python編程中 系統編碼,python編碼,文件編碼 的概念。

系統編碼:默認寫源碼的編輯器的編碼方式。它代表源碼文件內的所有內容都是根據詞方式編碼成二進制碼流。存入到磁盤中的。linux下通過locale命令查看。

python編碼:指python內設置的解碼方式。如果不設定的話,python默認的是ascii解碼方式。如果python源代碼文件中不出現中文的話,這個地方怎么設定應該不會問題。

設定方法:在源碼文件開頭(一定是第一行):#-*-coding:UTF-8-*-,源碼文件的設置解碼方式是UTF-8 或者 

import sysreload(sys)sys.setdefaultencoding('UTF-8')

文件編碼:文本的編碼方式,linux下vim利用set fileencoding查看。

一般情況下輸出亂碼的原因就是 沒有按照系統解碼的方式進行編碼。

比如print s, s類型為str,linux系統下系統默認編碼為utf8編碼,s在輸出前就應該編碼為utf8。如果s為gbk編碼就應該這樣輸出。print s.decode('gbk').encode('utf8')才能輸出中文。

window下面情況相同,window默認編碼為gbk編碼,所以s輸出前必須編碼為gbk。

python處理中一般處理unicode類型。這樣輸出前直接編碼即可。

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆城县| 科尔| 阿拉善盟| 南乐县| 苏州市| 日照市| 永仁县| 繁昌县| 文水县| 南充市| 田阳县| 英山县| 乳源| 南通市| 龙口市| 新竹市| 儋州市| 墨玉县| 吉安县| 平乐县| 清丰县| 盱眙县| 乐安县| 西丰县| 松桃| 喀喇| 开远市| 兴安县| 怀来县| 萨迦县| 鲜城| 广元市| 满洲里市| 黄龙县| 新巴尔虎左旗| 墨竹工卡县| 六盘水市| 固始县| 北宁市| 临漳县| 英吉沙县|