字节数据 字符编码
时间:2018-12-25 16:01:20
参考:
字符编码#
ASCII 编码#
使用 8bit
表示范围从 00000000~11111111
可以表示 256 种字符,标准ASCII码定义了 128 个字符,从 00000000~01111111
。
字符组成:
1 2 3 4 5 6 7 8 9 10 |
|
Unicode 编码#
全称:Universal Multiple-Octet Coded Character Set。 简称 UCS。
ASCII 编码最多只能表示256个字符,[0~128]是固定的编码,[129~256] 在不同的国家可能对应不同的编码。
汉字一种语言有几万个字,为了使所有国家的每一个字都对应一个编码,就出现了 Unicode 编码。Unicode 编码 用4个字节表示一个字符。Unicode 规范了怎么用编码表示字符。
Unicode 编码存在的一个问题:
- 用几个字节存储字符,没有统一规定。
- 表示 abc 这些字符需要3个字节,比ASCII多出了3倍的空间。
对于上面的原因就出现了几种 Unicode 的规范,比如 UTF-8、UTF-32 等。
UTF-8 编码#
UTF:全称:UCS Transformation Format。定义了编码怎么传输。
使用可变长度(1~4个字节)编码表示不同符号,编码规则如下:
-
对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
-
对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。
如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
1 2 3 4 5 6 7 8 9 |
|