python中文處理相信迷惑過不少同學。下面說說python2/3的encode和decode函數。
python2中,使用decode()和encode()來進行解碼和編碼,以unicode類型作為中間類型。即
decode encode
str ---------> unicode --------->str
示例(注意encode和decode的編碼必須保持一致):
u = u'中文' #unicode對象u
gb2312_str = u.encode('gb2312') #gb2312編碼字符串
gbk_str = u.encode('gbk') #gbk編碼字符串
utf8_str = u.encode('utf-8') #utf-8編碼字符串
gb2312_u = gb2312_str.decode('gb2312') #gb2312編碼的unicode
utf8_u = gb2312_str.decode('utf-8') #utf-8編碼的unicode,此處因為編解碼方法不一致將導致無法還原原unicode類型
python2編解碼處理給人的感覺是較復雜。于是在python3中取消了unicode類型,代替以unicode編碼的字符串類型str。str和bytes關系如下:
encode decode
str ---------> bytes --------->str
文章列表