谈谈汉字编码

什么是汉字编码

我们大多数人都知道计算机读取的是01编码,那么我们现在的计算机又是如何读入我们所输入和输出的汉字呢?

这就用到了汉字编码了。它可以读入和分析并处理我们的汉字,那么我们就需要引入几个概念了:机内码,国标码,区位码。

机内码

机内码又叫做汉字内码,汉字内码是指计算机系统中存储,处理,传输汉字时使用的统一编码形式。

    • 而一个汉字用两个字节表示

    • 每个字节用七个二进制位表示。

    • 同时为了区分ASCII码,汉字内码两个字节的最高位都是1。

图片[1],谈谈汉字编码,网络安全爱好者中心-神域博客网

余下的2*7个位怎么办呢?别急,先往下看。

国标码

国标码我国有所标准:此图片的alt属性为空;文件名为image-39.png

该部分表的标准是GB2312—80。此外还有GBK,GB18030等,可自行查询。(ps:该图来自国家标准全文公开系统)

    • 该字符集中规定汉字的排布为94列,94行。

    • 与机内码不同的是,它最高位为0。

图片[3],谈谈汉字编码,网络安全爱好者中心-神域博客网

    • 行列代码称为第1字节(高位字节)列序代码称为第2字节(低位字节)。

    • 共收录7445个图形字符(682个非汉字图形符,6763个汉字)(ps:汉字又分为一级和二级,感兴趣可自行百度)

国标码和机内码的转换

如果你理解已以上概念,那么会不会有疑问国标码和机内码的区别在哪呢?不难发现,他们的最高位不同,那也正是这个区别。如下是B0A1H(H表示16进制下)对应汉字”啊“的两个码:

图片[4],谈谈汉字编码,网络安全爱好者中心-神域博客网

图片[5],谈谈汉字编码,网络安全爱好者中心-神域博客网

那么他们就差了一个80H,那么他们的转化就如下喽

图片[6],谈谈汉字编码,网络安全爱好者中心-神域博客网

那么”啊“的国标码就是3021H啦。

区位码

区位码是汉字输入方法中的序号码的一种

    • 区位码是唯一一种无重码的输入码

    • 它的编码是根据国标码中汉字的具体位置得出的

区位码与上列两码的转化

我们这里举一个”爸“的示例。

”爸“的机内码是B0D6H

那么他的国标码很容易得到为

图片[7],谈谈汉字编码,网络安全爱好者中心-神域博客网

区位码呢则是对国标码进行处理:

图片[8],谈谈汉字编码,网络安全爱好者中心-神域博客网

最后的区位码就是1654喽。

怎么样,是不是很简单,以后可以多套路套路朋友让他给你说1654,哈哈哈。

具体汉字的显示可自行学习,在此就不多做叙述了

(PS:以上部分内容来自网络,侵权删)

------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容