python的字元編碼

2021-08-20 10:22:51 字數 1493 閱讀 1496

1 字元編碼

將人類的字元編碼/轉換成計算機能識別的數字

這種轉換必須遵循一套固定的標準,該標準無非是

人類字元與數字的對應關係,稱之為字元編碼表

0001

1011

a---->0000 0000

b---->0000 0001

c---->0000 0002

d---->0000 0003

bit:二進位制位

bytes:位元組

ascii碼表:用1bytes表示乙個英文本元

1英文本元=8bit=1bytes

gbk:用2bytes表示乙個中文字元,1bytes去表示英文本元

unicode:記憶體中使用的是unicode編碼,unicode把全世界的字元都建立好對應關係

用2bytes去表示乙個字元

0000 0000 0000 0000

utf-8 #unicode tranform format-8

utf-8 用1bytes表示英文,用3bytes表示中文

#字元編碼需要記住的概念

#01 記憶體中固定使用unicode編碼,我們唯一可以改變的儲存到硬碟時使用的編碼

#02 要想保證訪問檔案不亂亂碼,應該保證文件當初是以什麼編碼格式存的,就應該以什麼編碼格式去讀取

#03 python3直譯器預設編碼是utf-8

python2直譯器預設編碼是ascii

在python2中有兩種字串編碼格式

1、unicode:

x=u'上'

2、unicode編碼後的結果

x='上' #如果檔案頭為coding:utf-8,那麼"上"被存成utf-8格式的二進位制

在python3只有一種字串編碼格式:

1、unicode

x='上』

#04 編碼與解碼

unicode-------編碼encode-------->gbk

unicode<-------解碼decode--------gbk

#***

#coding:gbk

x='上』

x.decode('gbk')

#coding:gbk

x=u'上'

x.encode('gbk')

x.encode('utf-8')

#在python3中(*****)

x='上'

x只能進行編碼

x.encode('gbk')

總結python2與python3:

(***)

在python2中的字元粗型別str都是unicode按照檔案頭的指定的編碼,編碼之後的結果

在python2中也可以製造unicode編碼的字串。需要在字串前加u

(*****)

在python3中的字串型別str都是unicode編碼的

所以python3中的字串型別可以編碼成其他字元編碼格式,編碼的結果

是bytes型別

Python 的字元編碼

配置 python 2.7 sublime text 2 os x 10.10 本文意在理清各種編碼的關係並以此解決 python 中的編碼問題。只有先了解字元表 編碼字符集 字元編碼三者的基本概念,才能直入編碼問題的核心。字元表是乙個系統支援的所有可讀或者可顯示的抽象字元的集合。也就是說字元表裡面...

python 的字元編碼

unicode編碼 unicode編碼為世界上所有字元都分配了乙個唯一編號,為十六進製制,如中文簡體漢字 渣 的 unicode編號就是 6e23,unicode僅僅定義了每個字元的編號,並沒有定義如何將這個編號進行儲存的方式,所以後來出現了utf 8,gbk等編碼格式,它們都是 unicode 的...

Python 的字元編碼

在py2中,有兩種字串型別 str型別和unicode型別 str和unicode分別存的是位元組資料 編碼不確定直譯器解釋 和unicode資料 python 2.7.10 default,oct 6 2017,22 29 07 type help credits or license for m...