python之字元編碼

2021-10-08 03:23:24 字數 2383 閱讀 6640

# python3 d:\a.py

1、先啟動python直譯器

2、直譯器會將a.py的內容當成普通記憶體從硬碟讀入記憶體,此時沒有語法意義

3、直譯器會解釋執行剛剛讀入記憶體的記憶體,開始識別python語法

# 1、相同點:python直譯器是解釋執行檔案內容的,因而python直譯器具備讀py檔案的功能
字元---------(標準)---------------數字

# 字元編碼表:存放的是字元與數字的對應關係

1、ascii:
只能識別英文本元

特點:採用8bit對應乙個英文本元

8bit=》1byte

2、gbk:
可以識別中文字串與英文本元

特點:採用16bit對應字元,該字元可以是英文本元、也可以是中文字元

3、shift-jis:
可以識別日文字元和英文本元
4、unicode:
# 作用:可以識別萬國字元

# 特點:2bytes對應乙個字元

字元-----》unicode格式的數字

|gbk shiftjis

中文字元、英文本元------------》unicode二進位制數-----------》gbk二進位制數

日文字元、英文本元------------》unicode二進位制數-----------》shiftjis二進位制數

韓文本元、英文本元------------》unicode二進位制數-----------》euc-kr二進位制數

萬國字元------------》unicode二進位制數-----------》utf-8二進位制數

5、utf-8:
1byte對應英文本元

3byte對應乙個中文字元

1、群雄割據:
英文本元--------------記憶體:ascii二進位制數--------------->硬碟:ascii二進位制數

中文英文本元--------------記憶體:gbk二進位制數--------------->硬碟:gbk二進位制數

日文英文本元--------------記憶體:shiftjis二進位制數--------------->硬碟:shiftjis二進位制數

韓文英文本元--------------記憶體:euc-kr二進位制數--------------->硬碟:euc-kr二進位制數

2、過渡階段:
中文英文本元------------記憶體:unicode*****====gbk**********==>硬碟:gbk二進位制數

日文英文本元------------記憶體:unicode*****====shifjis*****===>硬碟:shiftjis二進位制數

韓文英文本元------------記憶體:unicode*****====euc-kr*****====>硬碟:euc-kr二進位制數

萬國字元----------------記憶體:unicode*****====utf-8**********>硬碟:utf-8二進位制數

# 記憶體固定使用:unicode

# 我們可以改變的是從記憶體寫入硬碟採用的編碼格式

3、分久必合:
萬國字元----------------記憶體:unicode*****====utf-	8**********>硬碟:utf-8二進位制數

萬國字元----------------記憶體:utf-8*************************=>硬碟:utf-8二進位制數

1、存的時候亂了:
採用的字元編碼表無法識別輸入的字元

存的時候就已經亂了,是無法補救的,取的時候一定也亂了

# 解決方法:存入硬碟的編碼格式應該用utf-8格式

2、存的時候沒有亂碼:
採用的字元編碼表可以識別輸入的字元

但是取的時候亂碼了:採用的字元編碼表與當初存的時候用的不是同一張表

# 解決方法:存的時候用什麼編碼,取的時候一定要用同樣的編碼格式

1、保證執行python程式的前兩個階段不亂碼

在python檔案的開頭加一行:

# coding:檔案存的時候用的編碼格式

2、在字串前面+u

# 在python3中字串型別的值在記憶體中都是unicode格式的數字

x="上"

print(x)

# 在python2中字串型別的值在記憶體中都是檔案頭指定編碼格式的數字:x=u"上"

# 如果在字串前加字首u就把字串強制存成unicode格式,推薦使用

print([x,])

print(x)

python之字元編碼

1.以什麼編碼存的就以什麼編碼取出 記憶體固定使用unicode編碼 我們可以控制的編碼是往硬碟存放或者基於網路傳輸選擇編碼。2.資料是最先產生於記憶體中,是unicode格式,要想傳輸需要轉成bytes格式 unicode encode utf 8 bytes 拿到bytes,就可以往檔案記憶體存...

python之指定字元編碼

控制文字讀寫內容的模式 t文字 b二進位制 bytes 控制檔案讀寫操作的模式 r唯讀模式 w只寫模式 a只追加寫模式 r w a 沒有指定encoding引數作業系統會使用自己預設的編碼 linux系統預設utf 8 windows系統預設為gbk with open ccc.txt mode r...

python基礎之字元編碼

1.什麼是字元編碼?字元 標準 字元編碼 數字 2.為什麼要編碼?讓計算機認識人的字元 3.常見的字元編碼 ascii 乙個bytes代表乙個字元 英文本元 鍵盤上的所有其他字元 1bytes 8bit,8bit可以表示0 2 8 1種變化,即可表示256個字元 gbk 2bytes代表乙個字元,由...