day07字符編碼複習: 1. 字符編碼:字符編碼就是字符與數字的對應關係表 計算機要想工做必須通電,即用‘電’驅使計算機幹活,也就是說‘電’的特性決定了計算機的特性。 電的特性即高低電平(人類從邏輯上將二進制數1對應高電平,二進制數0對應低電平), 關於磁盤的磁特性也是一樣的道理。結論:計算機只認識數字 很明顯,咱們平時在使用計算機時,用的都是人類能讀懂的字符 (用高級語言編程的結果也無非是在文件內寫了一堆字符),如何能讓計算機讀懂人類的字符? 必須通過一個過程: #字符--------(翻譯過程)------->數字 #這個過程實際就是一個字符如何對應一個特定數字的標準,這個標準稱之爲字符編碼 ASCII:只能識別英文字符,1Bytes=1英文字符 GBK:能夠識別中文字符與英文字符串,2Bytes=1中文字符 1Bytes=1英文字符 Unicode 1. 可以兼容萬國字符 2. 與其餘任意編碼的二進制數都有映射關係 unicode格式------編碼encode------->GBK格式的二進制數 GBK格式的二進制數-------解碼decode------->unicode格式 UTF-8:unicode的轉換格式,3Bytes=1中文字符 1Bytes=1英文字符 2. 在python中字符編碼的應用: 1. 保證執行python程序的前兩個階段不亂碼,加文件頭 在文件的首行寫入: #coding:文件存的時候用的編碼 2. 字符串類型演變: python2有兩種"字符串"相關類型: 種類一:#coding:gbk,x='上' # '上'存成了GBK編碼後的二進制 種類二:x=u'上' # '上'存成了unicode編碼後的二進制 python3有兩種"字符串"相關類型 x='上' # '上'存成了unicode編碼後的二進制 res=x.encode('gbk') #gbk格式的二進制 3. 總結: 1. 保證不亂碼的核心法則:以什麼編碼存的就應該以什麼編碼取 2. 在python2中定義字符串,應該加上前綴u,好比x=u'你好' 3. 在編寫python文件時,必須加文件頭:#coding:文件存的時候用的編碼 英文字節 中文字節 unicode 2 2 utf-8 1 3 gbk 1 2 ascii 1