Python 之字符串和编码字符编码我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理
最早的计算机在设计时采用 8 个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是 255(二进制 11111111=十进制 255),如果要表示更大的整数,就必须用更多的字节
比如两个字节可以表示的最大整数是是 4294967295
65535,4 个字节可以表示的最大整数由于计算机是美国人发明的,因此,最早只有 127 个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为 ASCII 编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122
但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和 ASCII 编码冲突,所以,中国制定了编码,用来把中文编进去
GB2312你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS 里,韩国把韩文编到 Euc-kr 里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码
因此,Unicode 应运而生
Unicode 把所有语言都统一到一套编码里,这样就不会再有乱码问题了
Unicode 标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要 4 个字节)
现代操作系统和大多数编程语言都直接支持 Unicode
现在,捋一捋 ASCII 编码和 Unicode 编码的区别:ASCII 编码是 1 个字节,而 Unicode 编码通常是 2 个字节
字母 A 用 ASCII 编码是十进制的 65,二进制的 01000001;字符 0 用 ASCII 编码是十进制的 48,二进制的