Python2 字串編碼
阿新 • • 發佈:2018-12-31
python2 中預設是ascii編碼,對程式外讀取的漢字需要解碼為Unicode字串進行處理。
python2中從程式外讀取字元,通過decode解碼為Unicode字元,使用encode將Unicode字元轉化為指定的編碼輸出。
>>> s = '你好呀'
# 解碼為Unicode字元, 編碼格式不一定為utf-8,要看讀入字元具體的格式
>>> s1 = s.decode('utf-8')
# 將Unicode字元編碼為gbk格式的字元
>>> s2 = s1.encode('gbk')
>>> s1
u'\u4f60\u597d\u5440'
>>> s2
'\xc4\xe3\xba\xc3\xd1\xbd'
- 使用chartdet獲取字元的編碼
有時我們不一定知道已有字元的編碼格式,可以使用chardet模組來獲取字元的編碼。chardet不是Python自帶的模組,需要安裝。
>>> import chardet
>>> s = '你好呀'
>>> en_type = chardet.detect(s)['encoding']
>>> s.decode(en_type)
u'\u4f60\u597d\u5440'
>>> chardet.detect(s)
{'confidence': 0.87625, 'encoding': 'utf-8'}