慢慢积累,愉快成长

发布新日志

  • 编码与字符集

    2008-12-17 18:08:22

    这个是我迷惑了非常久的一个问题,今天总算是明白了。
    首先说说unicode,我们通常说unicode字符集,有时候也说unicode编码方式。2种说法都是对的。
    unicode是国际组织设计的可以容纳所有国家语言的一种编码方式。所以设计一款全球化的软件必然要使用unicode字符集。在unicode出现之前有2个老古董: ASCII码 & ANSI码。 这就是我们通常所说的计算机内码。
    ASCII是单字节内码(SBCS) 最初的8位单元编码方案,为英文服务的
    ANSI是双字节内码(DBCS)各个国家为了在计算机里显示自己语言的编码方案。比如我们中文的GB2312就是默认的Chinese的ANSI代码页(1251)。
    代码页其实很简单就是不同的编码方案。 我们可以在windows的区域和语言的高级设置里看见不同的locale都有其默认的代码页。
    unicode一般就是指UTF16。双字节编码,为了不浪费存储空间做到于ASCII兼容出现了UTF8。UTF8是一种变长的编码方式。我们来看一下2者的对应关系。
    UTF16           UTF8              
    0000~007F   0XXXXXXX    这部分是与ASCII码兼容的部分。
    0080~07FF   110XXXXX 10XXXXXX
    0800~FFFF   1110XXXX 10XXXXXX 10XXXXXX



Open Toolbar