字符的由来

ASCII的由来

最开始,计算机中一个字节有8位,最大255,于是美国人将0-32规定成了控制码,比如10表示换行,然后又将其他的设置为英文字母,标点符号、半角字符等,刚好用完了128种数字,用一个字节就能表示。

GB2312的由来

后来计算机流行到其他国家后,其余国家语言文字在ASCII表中没有,于是他们自己在ASCII中加入字符,等轮到我们国家时,就往里面添加汉字,0-127还是原封不动,但是汉字太多了,一个字节是肯定表示不完的,那怎么表示呢?于是用两个字节表示一个汉字,一个字节最大为0xFF,两个字节最大为0xFFFF,所以两字节区间为0x0000~0xFFFF,但是依然保留了ASCII里面的127位字符,所以要保证每个字节大于127,于是规定第一个字节从0xA1~0xF7,第二个字节从0xA1~0xFE。所以一个汉字两个字节就是这么来的,在这个过程中,我们还储存了一套全角字符进去,这些字符被称为GB2312

GBK的由来

但是中国的汉字太多了,于是就继续扩张,又被称为gbk(国标扩)

GB18030的由来

但是两个字节又不够用了,就不限制第二个字节了,只要第一个字节大于127开始就算作汉字,就这样又加了2W左右的汉字,还包括了少数民族的汉字,被称为GB18030,

ANSI的由来

操作系统有一个ANSI码,根据这个ANSI码,会有不同的编码方式,在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。

UNICODE的由来

后来,为了统一ANSI,也为了统一标准,就有了Unicode,即万国编码,最开始用两个字符表示中文、英文,也有用到三个字节的,为了统一字节长度,最高甚至用到了四字节来表示一个字符

UTF16的由来

为了统一字节长度,就有了utf16,中英文都是2字节来表示

UTF8的由来

因为英文用2字节太慢了,为了传输速度,,就有了utf8,UTF8是可变长度的

UTF32的由来

而utf16都是2字节,那么那些4字节长度的字符怎么表示呢,就有了UTF32,UTF32都是4字节的,

特别注意*:UNICODE包括了UTF8、utf116、utf32。

特别注意*:每种规范如ASCII,Unicode、ANSI、GBK等里面的字符对应的字节是一样的,比如65永远是对应A,"我"字永远对应的是多少多少,但是到了Unicode却不一样了,某某并不代表"我"字,所以需要转换,相当于对照字典,在GBK里的”我“对应的某某字节,到了UNICODE 中“我”对应的是哪个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值