字符串的編碼,有很多種如utf-8,gb2312,gbk,gb18030,bz2,zlib,big5,bzse64
python 對編碼的處理有兩個方法,decode()和 encode()方法
a?=?'妳好'b?=?'python'
print?a.decode('utf-8').encode('gbk')##decode方法把字符串轉換為unicode對象,然後通過encode方法轉換為指定的編碼字符串對象
print?b.decode('utf-8')##decode方法把字符串轉換為unicode對象
所以要讓python(或者說機器)來識別字符串的編碼,是壹件很困難的事。編碼就是漢字和整數之間的對應,同壹個整數,可以在不同的編碼中,都有對應的漢字。比如下面的例子,比特流'\xe6\xb0\xb4\xe5\xa3\xb6'在四種編碼中都有對應的漢字,但只有在utf-8編碼下,它對應的漢字才有意義。我們可以壹眼看出這點,可是要讓計算機做到這點,就很難了。
>>>?s?=?'水壺'>>>?s
18:?'\xe6\xb0\xb4\xe5\xa3\xb6'
>>>?print?unicode(s,?'big5')
瘞遊ㄥ
>>>?print?unicode(s,?'gbk')
姘村6
>>>?print?unicode(s,?'gb2312')
姘村6
>>>?print?unicode(s,?'utf-8')
水壺