【计组笔记-1】ASCII码,区位码,国标码,汉字内码,以及万国码

【计组笔记-1】区位码,国标码,汉字内码,以及万国码

在学习计组时,了解到区位码是用一个94x94的表格记录常用汉字与特殊字符,特殊字符中包含字母,数字,希腊字母,拼音,一些几何图标,箭头,书名号等等等等,链接如下:区位码百度百科

但是其中并不包含控制字符或通信专用字符,即ASCII码中0~31的部分,因此,为了避免对这部分编号产生覆盖,要避开0-31的部分不对其进行编码,因此,国标码在区位码的基础上加了32,表示从32开始编码,这是我们国家对各种字符/文字等的编码方式。

(这里补充下,ASCII是最早的编码方式,由于是美国人发明的,因此只包含了字母数字和一些常用符号,之后各国为了自己的文字也可以被识别,在ASCII的基础上开始设计自己的编码方式,包括中国的国标码也因此诞生)

但是,由于这样的编码方式会导致不兼容ASCII中的其余字符,因而打开一些古早的英文文章会出现乱码,微软为了使其兼容ASCII码,因此在国标码的基础上再次加了128,使其可以兼容ASCII码,而加过128后的编码方式被称作汉字内码

关于为何要加32再加128,为何不在内码基础上直接加128,我的理解是,首先,国标码才是国家标准汉字编码方式,其次,内码是兼容处理后的国标码,因此需在国标码基础上进行兼容处理,而不是在十进制的内码上进行处理,此外,虽然国标码刚好避开了0-31的ASCII码(在区位码基础上+32),看起来似乎只需要再加128-32=96即可,但如果国标码某个版本有所变动,+96后的国标码不一定永远保证兼容ASCII码,统一+128简单又可靠,仅此而已。

最后,万国码是为了统一世界上所有语言和所需符号的一种编码方式,它的出现是因为,由于不同国家拥有自己的编码方式,这会导致基于不同字符集编写的文字解码后产生乱码,而万国码统一对所有语言进行编码,就可以避免这种问题,现在大部分系统依赖的也都是万国码了。

此外,UTF-8和UTF-16是万国码转换二进制的不同方式,由于万国码中一个字符是4个字节,而原本一个英文或数字只需要1个字节,一个中文需要2个字节,统一用4个字节储存,会浪费空间,因此有了一些可变长度的万国码实现方式,来降低资源浪费。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值