About Coding
簡(jiǎn)述
所有編碼都是二進(jìn)制到真實(shí)字符的映射
無(wú)論是是ASCII殿较,ISO,GBK劳闹,還是unicode
只不過(guò)上面這些編碼規(guī)則中,每一種二進(jìn)制對(duì)應(yīng)的字符不相同本涕。
UTF-8
UTF-8(Unocde Transformation Format)是一種傳輸格式伙窃,是一種unicode的實(shí)現(xiàn)方式。
UTF-8是變長(zhǎng)的
UTF-8用前置的1來(lái)表示需要的字節(jié)數(shù)
- 1 字節(jié) 0000 0000 -- 0000 007f (0x80 - 1)
- 0xxxxxxx
- 2 字節(jié) 0000 0080 -- 0000 07ff
- 110xxxxxx 10xxxxxx
- 3 字節(jié) 0000 0800 -- 0000 ffff
- 1110xxxxx 10xxxxxx 10xxxxxx
- 4 字節(jié) 0001 0000 -- 0010 ffff
- 11110xxxx 10xxxxxx 10xxxxxx 10xxxxxx
Encoding in Python
下面這些內(nèi)容可能有誤
Python2
str
類型是二進(jìn)制根據(jù)一定編碼規(guī)則(GBK晦闰,UTF等等),encode
之后的結(jié)果呻右,個(gè)人理解為顯示的結(jié)果鞋喇,也就是對(duì)應(yīng)的可見(jiàn)的字符。同一段二進(jìn)制可以被不同的編碼規(guī)則encode成不同的字符侦香。
測(cè)
在unicode中對(duì)應(yīng)的二進(jìn)制為0x6d4b
。
在utf-8
的傳輸格式下,編碼為\xe6\xb5\x8b
仰挣。
在GBK
的傳輸格式下,編碼為\xb2\xe2
膘壶。
在保存一個(gè)文件時(shí),可以選擇以不同的編碼方式進(jìn)行保存顷锰。同一個(gè)字亡问,在用'utf-8'進(jìn)行保存時(shí)肛宋,文件內(nèi)容為\xe6\xb5\x8b
,用GBK
進(jìn)行保存時(shí)束世,文件內(nèi)容為\xb2\xe2
酝陈。