ASCII
American Standard Code for Information Interchange
- 可见字符:32~126 控制字符:0~31和127
- 记住常见的数字,字母的ascii码
扩展ASCII
后来欧洲人使用,0~255 称之为扩展ASCII
GB2312 和 GBK
区位码:设计94个区,每个区都有特定的字符,每个区有(10*10-6)94个位。例如y是0389就是第三块,8行9列(从0开始)
国标码 = 区位码 + 2020H
内码 = 国标码 + 8080H
举例:
'侃’5709 :前一个字节0x39和后一个字节0x09都分别加上0xA0(+160可以正确区分ASCII最大为127)得到0xD9xA9,这样GB2312码可以兼容ASCII,高低位都大于127。
在GB2312的基础上又增加了字符,GBK。后来少数民族文字扩展,GBK18030字符集,对应编码就是GBK18030字符编码
UTF-8
一开始unicode使用的是UCS-2字符集,还是不够用。(Universal Character Set),后来UCS-4,但是所需空间太大,没有被广泛接受。后来互联网时代到来,必须对编码进行重新的思考,于是出现UTF-8,(Unicode Transformation Format)。
UTF-8是一种可变长的方式,UTF-8将UCS-4分为四个区间
UCS | UTF-8 |
---|---|
00~7F | 0xxxxxxx |
80~7FF | 110xxxx 10xxxxxx |
800~FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
1 0000~10 FFFF | 11110xxx 10xxxXXX 10xxxxxx 10xxxxxx |
举例:
王:0x0000 738B 00000000 00000000 01110011 10001011
1110xxXx 10xxXXxxx 10xXXXxxx
11100111 10001110 10001011 0xe7 0x8e 0x8b