計算機科學-ASCII, Unicode & UTF-8 (in Python)
專題:ASCII, Unicode & UTF-8 (in Python)
1.基本概念:
(1)字符集:已編號字符的有序集合,包括字符編號和字符,對計算機沒有直接意義
(2)編碼方案:將字符集中的字符編號與二進制字符編碼進行對應的映射
(3)編碼單位(碼元):計算機處理字符時一次讀取的二進制位數
(4)編碼:按照編碼方案,由字符轉換而來的二進制數據。在已知編碼單位和映射關系時,計算機可以對字符進行編碼,也可以對編碼進行解碼
2.ASCII、Unicode & UTF-8的實質:
(1)ASCII:字符集以及編碼方案,用0~127對128個字符做了編號,用8位作為編碼單位,簡單地把十進制編號轉換而成的二進制數據作為編碼
(2)廣義Unicode:
①Unicode:字符集,以16位二進制數對世界上幾乎全部字符做了編號
②UTF-8:編碼方案,以8位(一個字節)作為編碼單位,按照一定規則(每字節前幾位固定)將一個字符編碼為1到4個字節
3.ASCII、Unicode & UTF-8的應用背景:
(1)ASCII:只能表示英文文本
(2)Unicode:表示多語言文本,兼容ASCII
(3)UTF-8:傳輸、存儲用Unicode表示的多語言文本,去除Unicode中的冗余部分
4.Python描述:
(1)bytes和str類型:
①bytes:編碼比特流,如0101101000101101
②str:字符串,如’Python’
變量的類型可以用type()查看,或者以輸出時是否帶有b’’來區分
(2)encode和decode方法:
①encode將str以聲明的編碼方案轉換為bytes,也就是編碼
②decode將bytes以聲明的編碼方案轉換為str,也就是解碼
5.Python中的字符操作:
(1)在將字符串存入硬盤和從硬盤中讀取字符串的過程中,自動進行編碼和解碼
(2)為了避免亂碼問題,應堅持使用UTF-8方案
計算機科學-ASCII, Unicode & UTF-8 (in Python)