字符編碼
將人類的字符編碼/轉換成計算機能識別的數字
這種轉換必須遵循一套固定的標準,該標準無非是
人類字符與數字的對應關係,稱之爲字符編碼表
bit:二進制位
Bytes:字節
ASCII碼錶:用1Bytes表示一個英文字符
1英文字符=8bit=1Bytes
GBK:用2Bytes表示一箇中文字符,1Bytes去表示英文字符
unicode:內存中使用的是unicode編碼,unicode把全世界的字符都建立好對應關係
用2Bytes去表示一個字符
utf-8 用1Bytes表示英文,用3Bytes表示中文
字符編碼需要記住的概念
01 內存中固定使用unicode編碼,我們唯一可以改變的是存儲到硬盤時使用的編碼
02 要想保證存取文件不亂亂碼,應該保證文檔當初是以什麼編碼格式存的,就應該以什麼編碼格式去讀取
03 python3解釋器默認編碼是UTF-8,python2解釋器默認編碼是ASCII
在python2中有兩種字符串編碼格式
1、unicode:
x=u'上'
2、unicode編碼後的結果
x='上' #如果文件頭爲coding:utf-8,那麼"上"被存成utf-8格式的二進制
在python3只有一種字符串編碼格式:
1、unicode
x='上’
04 編碼與解碼
unicode-------編碼encode-------->gbk
unicode<-------解碼decode--------gbk
總結python2與python3:
在python2中的字符粗類型str都是unicode按照文件頭的指定的編碼,編碼之後的結果
在python2中也可以製造unicode編碼的字符串。需要在字符串前加u
在python3中的字符串類型str都是unicode編碼的
所以python3中的字符串類型可以編碼成其他字符編碼格式,編碼的結果
是bytes類型