【GiraKoo】常用编码的对比(ASCII,GB2312,GBK,GB18030,UCS,Unicode)

常用编码的对比(ASCII,GB2312,GBK,GB18030,UCS,Unicode)

在程序开发中,文字编码一直扮演着人畜无害,却背后捅一刀的角色。

  • 可能在源代码文件中,注释莫名其妙地变成了乱码。
  • 可能是发送给别人的文本,打开都是“锟斤拷”。
  • 可能是从一个程序拷贝到另一个程序,莫名其妙的丢失内容。
  • 可能是VS编译时,不停的提示“warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss”
  • 在某些字体下面,明明显示的很好的符号,更换字体就显示的乱七八糟。甚至直接是方框。

受限于早期系统设计的百花齐放,各大语言为了满足自己的需要发明了本国方言。
为了统一度量衡,Unicode应运而生。
但是即使是Unicode,也出现了UTF-8,UTF-16,UTF-32这样细分编码。

在B站上,有一个非常详细的字符编码讲解视频。其中涉及到编码的发展史,统一历程,以及锟斤拷这样的乱码究竟时怎么样产生的。非常推荐大家更加直观的了解Unicode编码是如何一统天下的。

有兴趣的可以移步观看。↓↓↓
锟斤拷�⊠是怎样炼成的——中文显示“⼊”门指南【柴知道】】

一、编码对比

1. ASCII

  • 每个字以1个字节来组成。
  • ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。

2. GB2312 / GBK / GB18030 / Big5

  • 简体使用GB2312最广
  • 繁体使用Big5最广
  • GB18030最全,基本兼容GBK。GBK完全兼容GB2312。
① GB2312
  • 每个字以2个字节来组成。
  • 共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
② GBK
  • 每个字以2个字节来组成。
  • 共收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。
③ GB18030
  • 每个字可以由1个、2个或4个字节组成。
  • GB18030-2005,以汉字为主并包含多种我国少数民族文字(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)的超大型中文编码字符集强制性标准,其中收入汉字70000余个。
④ Big5
  • 每个字以2个字节来组成。
  • 使用繁体中文(正体中文)社区中最常用的电脑汉字字符集标准,共收录13,060个汉字。

3. UCS

  • 通用多八位编码字符集(Universal Multiple-Octet Coded Character Set)也叫通用字符集(Universal Character Set, UCS),是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。
  • 由国际标准化组织(ISO)制定。

4. Unicode(UTF-8,UTF-16,UTF-32)

① 占用空间不同
  • UTF-8,每个字可以由1个、2个或4个字节组成。占用空间小,适合传输。
  • UTF-16,每个字可以由2个或4个字节组成。
  • UTF-32,每个字可以由4个字节组成。占用空间大,存在浪费。
② 查找速度不同
  • 由于UTF-8和UTF-16是变长编码。计算1000个文字的size需要遍历每一个字符进行计算。随机访问速度慢。
  • UTF-32是固定长度编码。计算1000个文字的size,可以直接*4,随机访问速度快。

二、VS编码转换插件推荐

FileEncoding

该插件可以在文本编辑器右下角直接查看当前文件编码,点击更换可直接进行编码转换。非常方便。

安装路径:Visual Studio MarketPlace

三、参考资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GiraKoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值