Python中的Unicode和utf-8
上一篇提過(guò)了字符集的歷史其中簡(jiǎn)單的講解了Unicode與utf-8的關(guān)系,簡(jiǎn)單的總結(jié)一下:
utf-8和utf-16 、utf-32是一類(lèi),實(shí)現(xiàn)的功能是一樣的,只是utf-8使用的最為廣泛,但是Unicode和utf-8并不是同一類(lèi),Unicode是表現(xiàn)形式,utf-8是存儲(chǔ)形式
unicode是表現(xiàn)形式(utf-8可以解碼成unicode)
utf-8 、utf-16 、utf-32 是存儲(chǔ)形式(unicode可以編碼成utf-8)
理解:存儲(chǔ)的時(shí)候需要編碼成utf-8,表現(xiàn)的時(shí)候是一個(gè)utf-8需要解碼成為Unicode,換句話(huà)說(shuō),在代碼中處理的是Unicode,在文件中存儲(chǔ)的時(shí)候是以u(píng)tf-8的形式存儲(chǔ)。
不使用Unicode的形式
In [1]: name = '張三' In [2]: print name 張三 In [3]: name Out[3]: '\xe5\xbc\xa0\xe4\xb8\x89' #utf8編碼,存儲(chǔ)形式 In [4]: len(name) Out[4]: 6 In&n