對python字符編碼操作的一些認識

讀了一篇對python中文字符編碼講解的很好的文章後(http://python.jobbole.com/80831/),又通過查看一些文章,對字符編碼的問題有了一些新的認識。很多原來糾纏不清的概念能夠理清楚了:

1、字符與字節是兩個獨立的概念。字符表示的是文本中的單個符號,一個字符不是一個字節。一個字符可以有多種字節表現形式。在python裏,Unicode表示字符串,str表示字節串。比如‘漢’這個字符,是單個字符,但在str裏卻不是單個字節。所以,一個字符不是一個字節,str不是字符串而是字節串。

2、unicode表示字符編碼值,不指定字符的具體表現形式,utf-8、utf-16指定unicode編碼具體的存儲、傳輸形式;gbk/gb2312/big5既指定了字符的編碼值,又指定了編碼的存儲、傳輸形式(gbk/gb2312/big5編碼形式:http://blog.minidx.com/2008/12/06/1689.html)。比如,同一個字符‘漢’,unicode編碼是6C49,gbk編碼是BABA(漢字編碼查詢:http://bm.kdd.cc/),要把gbk編碼轉換成utf8編碼,就得先轉成unicode編碼值,再指定utf8編碼形式。

3、utf8、gbk、gb2312、big5沒有大小端之分,而utf16有。utf8是互聯網中用的最多的編碼格式。


另附一篇很好的解釋編碼的文章:http://www.cnblogs.com/cy163/archive/2007/05/31/766886.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章