[点点搬家]中文问题

[四年前的博客了,干得漂亮]


最初的字符集7bit, 共128种,后来出现了ASCII, America Standard Code for Information Interchange,IBM扩展的,8bit, 256种。


ANSI:ASCII以及其扩展集,如GB2312。正式名称为MBCS,Multi-Byte Character System,但通常称为ANSI。


扩展集太多了,不便于交流,产生了Unicode,Universal Multiple-Octet Coded Character Set,32bit, 65536种。

标准的Unicode称为UTF-16, UCS(Universal Character Set) Transformation Format,就是32bit, 65536种。


由于许多系统已经采用了单字节传输,所以出现了UTF-8,它可以对Unicode进行编码。

如,“连通”两个字的Unicode为:DE 8F 1A 90

进行UTF-8编码后为:E8 BF 9E E9 80 9A

看到,Unicode每个汉字对应32bit, UTF-8每个汉字对应48bit....


UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:

与CPU字节顺序无关, 可以在不同平台之间交流

容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码) 


UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.

UTF-16是unicode的preferred encoding.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值