1. 程式人生 > >Python2 字串編碼

Python2 字串編碼

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'}