关于文字代码(character code)

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

为了理解计算机处理文字的编码/表示,首先需要分清楚三个概念(这些概念经常被混淆)。

1,character repertoire (字符列表)

这是指某个特定的可表示的字符集合。

例如:

the Japanese syllabaries and ideographs of JIS X 0208 (CS 01058) [fixed]

the Western European alphabets and symbols of Latin-1 (CS 00697) [fixed]

the POSIX portable character repertoire [fixed]

the IBM host Japanese repertoire (CS 01001) [fixed]

the Windows Western European repertoire [open]

the Unicode/10646 repertoire [open]

2, character code (字符代码)

把character repertoire中的每一个字符分别赋予一个非负的数字,建立一个字符与数字的一一对应关系。这些数字就是character code。

character code中的数字并不一定是连续的,事实上,有些数字可以被保留作为control function (控制代码)。

character code有很多别名:code position,code number, code value, code element, code point, code set value , code

例如:JIS X 0208, ISO 8859-1,ISO 8859-2, ISO 8859-n, UNICODE等等

3,character encoding (字符编码)

把一个字符串相对应的character codes转换成计算机中的一串字节流的method/algorithm(方法/算法)称为character encoding。

例如:JIS ENCODING, EUC ENCODING, ISO 8859-1,ISO 8859-2, ISO 8859-n, UTF-16, UTF-8等等

这三个概念是分开的,他们之间可以是一对多的关系。比如,同一个character repertoire可以有不同的character codes;同一个 character repertoire/character codes 可以采取不同的character encoding。不过,有些标准同时规定了character repertoire/character codes/character encoding,建立了一一对应的关系,比如ISO 8859,Windows CodePages 等等。

★ Windows CodePages跟ISO 8859并不完全相等,DOS CodePages (OEM CodePages)差别更大。

★ ISO 2022 和 ISO 4873 为 8bits/7bits codes 建立了一个encoding的通用框架(general framework),很多标准都遵从这个框架(当然,一般只是框架中的一个子集);但Windows CodePages并不遵从这个框架。

参考资料:

http://www.cs.tut.fi/~jkorpela/chars.html

http://www.unicode.org/unicode/reports/tr17/

http://euc.jp/i18n/charcode.ja.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航