常用編碼 ascii unicode utf-8 gbk
編碼 ascii
unicode
utf-8
gbk
機(jī)器底層 只認(rèn)識(shí)0 1
計(jì)算機(jī)開始設(shè)計(jì):8bit=1byte
(字節(jié))
0000 0000
每個(gè)位置只有0和1, 2**8=256
也就是 0-255
西方國家:
ASCII表只有127個(gè)徐钠,每個(gè)字符一個(gè)字節(jié)
26個(gè)大寫字母+26小寫字母+10個(gè)數(shù)字+特殊字符=127個(gè)
西方國家127個(gè)已經(jīng)夠了垃沦,128到255預(yù)留給其他國家使用
漢字 常用5000個(gè) 簡體繁體加起來有2萬多個(gè)
- GB2312 6000漢字瀑构,兼容ASCII
- GBK 包括了GB2312 的所有內(nèi)容译打,增加了近20000個(gè)新的漢字(包括繁體字)和符號(hào)翻诉。
- GB18030 將中國幾乎所有的字符都收錄了
編碼混亂
各國都在將自己語言文字編碼柠新,ISO組織看不下去了峰鄙,unicode應(yīng)運(yùn)而生
unicode又叫萬國碼,設(shè)計(jì)占用2個(gè)字節(jié)(不管什么字符套蒂,都是2字節(jié))2**16
0-65535
UTF-8編碼
- unicode是一個(gè)字符集钞支,收錄所有字符,并沒有存儲(chǔ)情況
- 英文只占1個(gè)字節(jié) 漢字占用3個(gè)字節(jié)
編碼占用字節(jié)
- ascii 一個(gè)字節(jié)
- gbk 兩個(gè)字節(jié)
- utf-8 英文字符1字節(jié)操刀,漢字3字節(jié)
- unicode 占用 2個(gè)字節(jié)
windows編碼查看
cmd
輸入 chcp
活動(dòng)代碼頁: 936 -->cp936 -->gbk
utf-8和gbk使用范圍:
- utf-8存在的意義烁挟,節(jié)省空間,適用于英語字母比較多的情況骨坑。
- gbk適合中文比較多的情況撼嗓。Windows編碼為gbk,目的均為節(jié)省空間
ASCII碼對(duì)應(yīng)表
python編碼
在python3中:所有的字符串都是unicode,其他以utf-8編碼
s='中文' #unicode
b=s.encode('utf8') #unicode-->utf8 每個(gè)漢字三個(gè)字節(jié)
# b'\xe4\xb8\xad\xe6\x96\x87' 占用6個(gè)字節(jié)
# \xe4 16進(jìn)制
c=s.encode('gbk') #unicode-->gbk 每個(gè)漢字兩個(gè)字節(jié)
b'\xd6\xd0\xce\xc4' 占用4個(gè)字節(jié)
# encode 編碼: 看得懂---》看不懂
# decode 解碼: 看不懂--->看的懂
#python查看系統(tǒng)編碼
import sys
sys.getfilesystemencoding()
sys.getdefaultencoding()
常用編碼轉(zhuǎn)換關(guān)系