'''
-
計算機系統分爲三層:
應用軟件
操作系統
硬件 -
文本編輯器讀一個文件的三個過程:
- 先啓動文本編輯器
- 文件編輯器會將文件內容讀入內存
- 將讀入內存的內容顯示到屏幕上
Cpython解釋器執行一個py文件的三個過程:
- 先啓動python解釋器
- python解釋器會將py文件的內容當中普通的文本內容讀入內存
- 開始解釋執行剛剛讀入內存的代碼,識別python語法
-
字符編碼
字符編碼指的是字符轉換成/編碼成數字
編碼的過程一定要遵循一個標準,該標準稱之爲字符編碼表字符--------編碼--------》數字
字符《--------解碼--------數字
'''
#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
結論:
#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
#5.
python3的字符串類型在內存中存成unicode格式的二進制
#