计算机导论常识常见字符编码

Posted 鱼竿钓鱼干

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机导论常识常见字符编码相关的知识,希望对你有一定的参考价值。

【计算机导论常识】常见字符编码

写课设的时候发现C语言不支持UTF-8,所以去补充了一下字符编码的知识

字符编码:对字符集进行编码

ASCII码

美国信息交换标准码
为了在不同计算机硬件和软件系统中实现数据传输的标准化
ASCII码字符集共有128个字符,用字节存储,最高位通常为0,可用于数据奇偶校验,其余7位编码

扩展ASCII码
电脑在一些欧洲国家发展后发现标准的ASCII码不够用,所以决定把字符集扩展到8位。最多表示256字符

GB2312 字符集

电脑在中国传播后发现扩展ASCII码也不够用,这时候我们首先要设计新的字符集。
分区管理:94个区,每个区94个位,共计8836个码位
01-09区:除了汉字以外682个字符
10-15区:为空白区
16-55区:3755个一级汉字,按拼音排序
56-87区:3008个二级汉字,按部首/笔画排序
88-94区:空白区
分区后我们可以得到一个字符的区位码
区位码=区字节+位字节
“啊”字是GB2312之中的第一个汉字,它的区位码就是16 01
但是这还不是GB2312码。为了区分ASCII码,我们需要把区字节和位字节转为16进制后分别加上0xA0
0xB0=0xA0+16,0xA1=0xA0+1
所以啊的GB2312码是0xB0A1

具体为啥加的是0xA0,可以看一下这篇回答

GB2312的扩展
GBK新增20000个汉字和符号
GB18030新增几千少数民族的汉字和符号

Unicode

试图涵盖全球各国字符,先后推出了UCS-2字符集和UCS-4字符集
UCS-2:0x0000~0xFFFF 可以表示65536个字符
UCS-4: 0x00000000~0xFFFFFFFF 可以表示将近43亿个字符,基本足够了
但是有个缺陷就是占用空间太大了
下面主要介绍UTF-8编码规则
每次传输8位数据,是可变长的字符编码。UTF-8将UCS-4划分为4个区间

范围格式
0x0000 0000~0x0000 007F0xxxxxxx
0x0000 0080~0x0000 07FF110xxxxx 10xxxxxx
0x0000 0800~0x0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0x0001 0000~0x0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

以“王”例子,按表格从上到下将它的UCS-4转化为UTF-8

编码形式具体表示
UCS-40x0000 738B
UCS-4二进制0000 0000 0000 0000 0111 0011 1000 1011
第3区间格式1110xxxx 10xxxxxx 10xxxxxx
UTF-8二进制11100111 10001110 10001011
UTF-8十六进制0xE7 0x8E 0x8b

这个编码方法的好处之一是,码点范围 U+0000 ~ U+007F 编码为一个字节,与 ASCII 编码兼容。这范围的 Unicode 码点也是和 ASCII 字符相同的。因此,一个 ASCII 文本也是一个 UTF-8 文本

以上是关于计算机导论常识常见字符编码的主要内容,如果未能解决你的问题,请参考以下文章

进化计算/演化计算 导论

2019-2020 20191312 《信息安全专业导论》第三周学习总结

2019-2020-1学期 20202429《网络空间安全专业导论》第三周学习总结

20192414《网络空间安全导论》第三周学习总结

2019-2020-1学期 20202409 《网络空间安全专业导论》第三周自学总结

2019-2020-1 学期 2427 《网络空间安全导论》 第三周学习总结