1. 程式人生 > >python學習之路 day08

python學習之路 day08

字元編碼

1. 計算機系統分為三層:
      應用軟體
      作業系統
      硬體

 

2.文字編輯器讀一個檔案的三個過程:

1. 先啟動文字編輯器
2. 檔案編輯器會將檔案內容讀入記憶體
3. 將讀入記憶體的內容顯示到螢幕上

 

3.Cpython直譯器執行一個py檔案的三個過程:

1. 先啟動python直譯器
2. python直譯器會將py檔案的內容當中普通的文字內容讀入記憶體
3. 開始解釋執行剛剛讀入記憶體的程式碼,識別python語法

 

4.字元編碼:

字元編碼指的是字元轉換成/編碼成數字

編碼的過程一定要遵循一個標準,該標準稱之為字元編碼表

字元--------編碼--------》數字
字元《--------解碼--------數字

 

5.編碼表:

1. ASCII表:只能識別英文字元,用8bit對應一個英文字元
1個英文字元====>1Bytes


2. GBK表:可以識別中文字元、英文字元,用8bit對應一個英文字元,用16個bit對應一箇中文字元
1個英文字元====>1Bytes
1箇中文字元====>2Bytes


3. unicode(記憶體中預設使用該編碼):用2Bytes表示一個字元
1. 可以識別萬國字元
2. 與各種字元編碼的二進位制數字都有對應關係


4. utf-8全稱Unicode Transformation Format:
1個英文字元====>1Bytes
1箇中文字元====>3Bytes

 

6.結論:
1、 編碼與解碼
字元--------編碼--------》數字
字元《--------解碼--------數字

unicode二進位制========編碼========》utf-8二進位制
unicode二進位制《=======解碼=========utf-8二進位制


2. 記憶體中固定使用unicode編碼,我們可以改變的是資料由記憶體刷到硬碟時採用的編碼(應該採用utf-8)
unicode的特點:
1. 可以識別萬國字元
2. 與各種字元編碼的二進位制數字都有對應關係


3. 解決亂碼問題的核心:
1. 字元當初以什麼編碼存的,就應該以什麼編碼去讀
2. 保證執行python程式的前兩個階段不亂碼的解決方案:新增檔案頭
在檔案首行新增#coding:檔案當初存的字元編碼



4. python直譯器預設的編碼
python3:預設utf-8
python2:預設ASCII