关于字体编码
发布日期:2022-02-07 06:39:47 浏览次数:3 分类:技术文章

本文共 660 字,大约阅读时间需要 2 分钟。

字体编码

  • 输入编码
  • 汉字交换码
  • 汉字内码

关于GB2312

输入编码:区位码:行号+列号(十进制)

交换吗:国标码:区位码转十六进制后加上2020H
汉字内码:机内码:国标码 + 8080H

几个疑问

  1. 国标码为什么要区位码加上2020H
    1. 解释:区位码是中国定义的94乘以94的一个表。一个字节只用低七位的话有127中状态。英文中0到32的字符都是些控制字符,第127位是del字符,即删除字符,所以总共有34个控制字符。(从0到127)128减去(从0到32是33加上第127位的那一个字符共34)34等于94。所以可供中文使用的是94个状态。
    2. 国标码其实就是交换码,是中国用来交换的,当然交换码是不能引起歧义的,94行94列的一个编码再加上32就是行号从33到126列号也是从33到126。这样就与0~32的英文控制字符没有冲突了。
  2. 机内码为什么要国标码加上8080H
    1. 解释:举例:“保”的国标码是3123H,然而:31H 和23H在ASCII中式有值的,31H在ASCII中表示数字1,23H表示的是“#”(这个可以在网上查询),那么如果我以国标码作为机内码的话,如果内存中有两个字节为31H和23H,那么到底是表示汉字“保”呢?还是字符1#呢?这样就有了歧义,但是解决办法就有了,0-127不是被英文字符占了吗?那么我就用127之后的来表示不就可以了吗?于是我把汉字的两个字节每个字节机上128(16进制就是80H)

小结

区位码 —(转十六进制–>加上2020H)—>国标码 — (加上8080H) —> 机内码

转载地址:https://blog.csdn.net/wyfwyf12321/article/details/78262688 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux系统备份以及自定义liveCD的制作
下一篇:python 首页探秘(高级编程技术week1-1)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月23日 09时20分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章