關於 python 字元編碼的一些認識

2021-06-11 11:18:31 字數 918 閱讀 1448

使用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...