分类: LINUX
2009-06-05 09:09:20
关键字:USC,Unicode,utf-8,gb2312,字库
什么是编码
为了交流信息,所以对字符进行了统一的编码。
UCS和ISO10646
ISO10646定义了通用字符集(Universal Character Set,UCS).UCS是国际标准编码,包含了全球所有字符。UCS使用31bit进行编码。现在只分配了前65534个码位,这个16位的子集称为基本多语言面(BMP)。
什么Unicode
Unicode编码是UCS级别3的实现。Unicode编码全码为4个字节,所有字符都使用等的编码方式,现在只使用两个字节编码。兼容UCS定义的BMP
GB2313与Unicode
GB2312是中国定制的国际准标编码,由两个字节组成,最高位为1表示汉字,最高为0表示是英文。
GB2312与区位码存在数值关系,区位码+20H=GB2312
GB2312与Unicode的转换不成数学关系,只能通过映射表来实现。
GB2312为80年定义的基本编码扩展编码有
GBK
GB18030
GB13000与GBK不兼容,只是使用了相同的词汇.
最新为GB16500-95与unicode3.0兼容
Unicode与UTF-8
Utf-8是为了兼容软件处理的编码,是unicode的另一种表示方式。使用变化的方式编码,第一字节表示字符的长度,后面的字符以10开头表示编码。0开头表示ascii编码。
例如:
Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为
11000010 10101001 = 0xC2 0xA9
字库与编码关系
字库是编码表字符显示的描述文件。字符编码是在字库中查询需要显示的字符的索引值。
不同的编码就应该有不同的字库,比如unicode编码就有unicode的字库。Gb2312编码就有gb2312的字库。
字库格式
字库的格式主要有TrueType(ttf),PostScript(rip),OpenType等
TrueType是微软定义的字库格式,主要用于软件显示这种要求精度不高的环境,
PostScript是Adobe定义的字库格式,主要用于排版印刷等大字打印精度要求很高的环境。
OpenType是TrueType与PostScript的综合格式,并且是使用了unicode的编码。
字体引擎
字体引擎用于读取字库,显示文字,文字转换等操作。现在免费的字体引擎有FreeType.
参考文献