关闭

编码基础

标签: 存储byte语言2010
210人阅读 评论(0) 收藏 举报
分类:

首先澄清一个概念 ASCII,ANSI标准和Unicode是一种编码,何为编码,编码的意思是为一个字符规定一个对象的数值,例如A的ASCII编码数值和Unicode数值肯定不同。至于编码对应的数值怎么存储,就不是编码所规定的范畴了。ASCII编码为0X00-0x7F Unicode从0x0000-0xFFFF,注意unicode的物理存储不一定对应一个字节哦,例如utf-8。

ANSI 美国国家标准协会,也就是说,每个国家(非拉丁语系国家)自己制定自己的文字的编码规则,并得到了ANSI认可,换句话说就是不同国家地区的ANSI编码数值是不同的。中国的ANSI编码和在日本的ANSI的意思是不一样的,中国一般是GBK,日本是JIT,香港、台湾一般是Big5。所以基于ANSI标准的语言编码,在逻辑上需要的字符数就显得不一定了,可能是一个,可能是两个,可能是三个。

搞懂了ANSI的含义,我们发现ANSI有个致命的缺陷,就是每个标准是各自为阵的,不保证能兼容。换句话说,要同时显示中文和日本文或者阿拉伯文,就完全可能会出现一个编码两个字符集里面都有对应,不知道该显示哪一个的问题,也就是编码重叠的问题。显然这样的方案不好,所以Unicode才会出现。

SBCS Single Byte Code set 意思是一个单字符字符集

MBCS 多字符字符集合,多字节字符系统或者字符集,基于ANSI编码的原理上,对一个字符的表示实际上无法确定他需要占用几个字节的,只能从编码本身来区分和解释。因此计算机在存储的时候,就是采用多字节存储的形式。也就是你需要几个字节我给你放。

DBCS 双字符字符集

可以参考这个哥们写个一片文章不错:http://blog.csdn.net/softman11/article/details/6124345

http://ycwangshuai2008.blog.163.com/blog/static/5066933120108182453397/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2718次
    • 积分:64
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档