使用python,是因為他的美;以下說明常用的字元編碼在python中的應用:
s = "中國a"
print repr(s) #
輸出原始字元 是以十六進製制表示
#'\xd6\xd0\xb9\xfaa'
#ansi字串我們最熟悉,英文佔乙個位元組,漢字2個位元組,以乙個\0結尾,常用於txt文字檔案
#unicode字串,每個字元(漢字、英文本母)都佔2個位元組,以2個連續的\0結尾
#utf-8英文1個位元組,中文3個位元組
s1 = s.decode('
gbk') //以十六進製制儲存就是已經編過碼的了 所以要解碼
#u'\u4e2d\u56fda'
s2 = s1.encode('
utf-8
') //對unicode字元進行編碼,編成utf-8格式
#'\xe4\xb8\xad\xe5\x9b\xbda'
s3 = s2.decode('
utf-8
') //既然是用utf-8格式編碼,當然要用utf-8格式進行解碼
#u'\u4e2d\u56fda'
s4 = s3.encode('
gbk') //最後當然是編碼成常用的中文編碼格式啦
#'\xd6\xd0\xb9\xfaa'
#其實說到底是乙個表示式而已
print s.decode('
gbk').encode('
utf-8
').decode('
utf-8
').encode('
gbk')#
中國a所以,python 的字元編碼方式其實很簡單,但有時候總是誤入歧途,嘿
現做以上總結,望今後能銘記於心,不犯同類錯誤
關於字元編碼的一些簡單思考
如果按照gbk的編碼規則,該是如何解釋呢?根據前面的規則,efbb符合gbk解碼規則,對應漢語字元 鍩 再接著看 bf,在gbk的首位元組範圍內,而3c明顯不在gbk編碼的尾位元組範圍,如此實際上無法解析出正確的編碼。但我們已經發現了,如果統一要求我們書寫的 按照gbk的編碼方式儲存,將無法出現bo...
python一些字元編碼處理的手記
幾個和字元編碼相關的函式。sys.getdefaultencoding 可以獲取python預設的編碼。另外還有乙個locale.getpreferredencoding 系統使用的預設字元編碼。暫時搞不太清這兩個函式不知道有什麼區別,只能按這樣來理解。還有兩個編碼轉換的函式,decode和enco...
mysql關於改變字元編碼的一些操作語句
1.修改表編碼的格式 alter tabletabledefault character set utf8 2.修改欄位的編碼格式 alter tabletablenameconvert to character set utf8 3.檢視資料庫的編碼 show variables like cha...