演示
python內(nèi)部字符串統(tǒng)一是用unicode來存的,但是字符串在初始化的時候會因為操作系統(tǒng)環(huán)境而有差異
下面是在Linux環(huán)境下(UTF-8)初始化字符串
>>> d = '測試'
>>> d
'\xe6\xb5\x8b\xe8\xaf\x95'
轉(zhuǎn)成unicode,可以看到變成了u開頭的一堆字符,這個時候就可以轉(zhuǎn)碼了
>>> d = d.decode('utf-8')
>>> d
u'\u6d4b\u8bd5'
轉(zhuǎn)成GBK編碼
>>> d = d.encode('gbk')
>>> d
'\xb2\xe2\xca\xd4'
總結(jié):
- decode操作,把編碼后的字符串轉(zhuǎn)成未編碼的unicode
- encode操作,將unicode轉(zhuǎn)成編碼后的字符串
智能判斷編碼類型
>>> import chardet
>>> d = d.encode('utf-8')
>>> chardet.detect(d)
{'confidence': 0.7525, 'language': '', 'encoding': 'utf-8'}