[文本]字符编码基础--ASCII、DBCS、Unicode

第一种编码模式是单字节字符集(single-byte character set or SBCS)      
  在这种编码模式下,所有的字符都只用一个字节表示。ASCII就是SBCS。
  一个字节表示的0用来标志SBCS字符串的结束。
  ASCII是美国设定的最基础的英文编码,一开始老美没打算让其他国家用计算机,所以它仅支持英文字母a-z、A-Z、阿拉伯数字0-9、常见标点符号,.!?\/等。

第二种编码模式是多字节字符集(multi-byte character set or MBCS)      
  用在Windows里的MBCS包含两种字符类型,单字节字符 (single-byte characters)和双字节字符(double-byte characters)。由于Windows里使用的多字节字符绝大部分是两个字节长,所以MBCS常被用DBCS代替。在DBCS编码模式中,一些特定的值被保留用来表明他们是双字节字符的一部分。例如,在Shift-JIS编码中(一个常用的日文编码模式),0x81 -0x9f之间和 0xe0-oxfc之间的值表示"这是一个双字节字符,下一个字节是这个字符的一部分。"这样的值被称作"leading bytes",他们都大于0x7f。跟随在一个leading byte字节后面的字节被称作"trail byte"。在DBCS中,trail byte可以是任意非0值。
  像SBCS一样,DBCS字符串的结束标志也是一个单字节表示的0。
  MBCS是其他国家各自开发的为了让计算机支持本国语言而形成的编码统称,以中文为例,Windows支持的GB2312、GBK、GB18030都属于MBCS,所以你在PC里打开txt看到的汉字就是用其编码的。

第三种编码模式是通用多八位编码字符集(Universal Multiple-Octet Coded Character Set or Unicode)      
  Unicode(UTF-16)是一种以两个字节为编码单位的编码模式。Unicode字符有时也被称作宽字符,因为它比单字节字符宽(使用了更多的存储空间)。注意,Unicode不能被看作MBCS。MBCS的独特之处在于它的字符使用不同长度的字节编码。
  特别注意的是,Unicode 字符串使用两个字节表示的0作为它的结束标志。
  Unicode是国际标准化组织ISO建立的试图支持全世界的语言的编码(用以解决MBCS不统一的问题),但是它并不仅仅是拓宽编码字节长度那么简单,具体将进一步探讨Unicode

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

痞子衡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值