# 计算机字符编码
最早的计算机采用 8 个比特(bit)作为 1 字节(byte),在计算机中,二进制的位数就表示多少个比特, 那么 8 个比特 = 11111111(二进制)= 255(十进制),所以一个字节最大表示的整数是 255, 所以要表示更大的数,就需要更多的字节 2 个字节 = 16 个比特 = 1111111111111111(二进制) , 所以 2 个字节表示的最大整数是 65535,
# ASCII
由于计算机是外国人发明的,早期只有 127 个字符,也就是大小写英文字母,数字,和一些符号,这个编码被称为 ASCII
编码,
比如大小字母 A
的编码是 65
小写字母 a
的编码是 97
,但是中文一个字节不够表示,所以中国制定了 GBK2312
# Unicode 字符集
世界语言上百种,每种语言都制定一种编码的话,就会出现冲突,因此 Unicode
字符集应运而生。
Unicode
是一套标准,常用的是 UCS-16
编码,用 2 个字节表示一个字符,所以:
字符 | 十进制 | ASCII | Unicode |
---|---|---|---|
A | 65 | 01000001 | 00000000 01000001 |
可见,ASCII
转成 Unicode
编码,只要在前面补 0
即可,但是 Unicode
编码却会占用一倍存储空间,
所以才出现了 UTF-8