ASCII、GB2312、GBK、ANSI、Unicode、UTF-8这些编码的演变过程

今天编程需要写入数据到xml,用到了开源的tinyxml2,里面的编码格式为UTF-8,所以在VS上编程需要进行格式转换。因此花费了一些时间去简单了解了编码的发展历程,这里做个记录,免得遗忘。

因为计算机是美国人(美籍人)发明的,所以最初的计算机编码方式是英文,也就是最初的ASCII码,这是在学校的时候就学习了的。——因为英文字母着实不多,所以ASCII码是单字节的。

然后计算机慢慢的在世界普及了,各国人民都在用。而又不是所有国家都说英语,所以ASCII码肯定不行了。如此情况下,各国都开始了自己的编码了。这里将各国编码统称为ANSI编码——所以ANSI编码不是特指某一个国家的定点编码。如在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码——出自百度百科。

【其中,我们中国的编码历程为GB2312 ->GBK->GB18030。这个过程就是一个汉字容量扩充的过程,在保留ASCII编码内容的前提下,我们开始使用两个字节对汉字进行扩充编码(GB2312 ->GBK),后来汉字越来越多,2个字节不够用了,就有了4个字节编码的GB18030。】

随着世界联系越来越紧密,计算机通讯用的越加频繁,不同国家编码格式对彼此之间的交流造成了很大的障碍。所以国际组织ISO对各国编码进行了汇总,就是Unicode字符集。它不是一种具体的编码方案,所以我目前把它理解为(UTF-8,UTF-16,UTF-32)编码的统称。因为我们的电脑默认为UTF-16,所以一说Unicode都默认它为UTF-16,也就是2个字节的编码。

分别介绍下UTF-8,UTF-16,UTF-32:
UTF-32:四字节的编码(中文字符在里面占4个字节)
UTF-16:二个字节或者四个字节编码。大多数两个字节,少数4个字节。(中文字符在里面占2个字节)
UTF-8:可以用1-4个字节分别表示,即根据不同符号可变。(中文字符在里面占3个字节)

ps:因为只是通过网页查询来了解并总结的,所以可能有不对的地方,欢迎指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值