About Coding
简述
所有编码都是二进制到真实字符的映射
无论是是ASCII,ISO,GBK,还是unicode
只不过上面这些编码规则中,每一种二进制对应的字符不相同。
UTF-8
UTF-8(Unocde Transformation Format)是一种传输格式,是一种unicode的实现方式。
UTF-8是变长的
UTF-8用前置的1来表示需要的字节数
- 1 字节 0000 0000 -- 0000 007f (0x80 - 1)
- 0xxxxxxx
- 2 字节 0000 0080 -- 0000 07ff
- 110xxxxxx 10xxxxxx
- 3 字节 0000 0800 -- 0000 ffff
- 1110xxxxx 10xxxxxx 10xxxxxx
- 4 字节 0001 0000 -- 0010 ffff
- 11110xxxx 10xxxxxx 10xxxxxx 10xxxxxx
Encoding in Python
下面这些内容可能有误
Python2
str
类型是二进制根据一定编码规则(GBK,UTF等等),encode
之后的结果,个人理解为显示的结果,也就是对应的可见的字符。同一段二进制可以被不同的编码规则encode成不同的字符。
测
在unicode中对应的二进制为0x6d4b
。
在utf-8
的传输格式下,编码为\xe6\xb5\x8b
。
在GBK
的传输格式下,编码为\xb2\xe2
。
在保存一个文件时,可以选择以不同的编码方式进行保存。同一个字,在用'utf-8'进行保存时,文件内容为\xe6\xb5\x8b
,用GBK
进行保存时,文件内容为\xb2\xe2
。