该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.多语言字符集和编码相关的参考规范之中最重要的有两个,一个是ISO/IEC 10646,一个是 Unicode 。
前者是专家委员会起草的国际标准。(前身还有两个不同的草案,因为中国大陆等方面的反对而否决。)
后者是行业协会组织的规范。ISO/IEC 10646正式版采用Unicode方案,之后的版本也和 Unicode 有基本的对应关系(虽然不一一对应),对普通应用来说基本可以作为同一个方案。
2.Unicode 定义了通用字符集(Universal Character Set, UCS) ,其中以代码点(code point) 作为逻辑上区分字符的单位。
由于历史原因,各种同源字符可能有不同的代码点,这方面汉字( CJKV unified ideographs ,中日韩越统一表意文字)问题尤其突出(相关工作称为Han Unification)。代码点可以由 U+X 的方式表示,X是16进制的自然数。
3.现行 UCS 代码点范围 U+0~U+10FFFF ,划分为 17 个平面,编号 0~16 ,每个平面有 65536 个代码点。
其中最常用的代码点子集是 0 号平面(代码点 U+0~U+FFFF ):基本多文种平面(basic mutilingual plane, BMP) ,之后是第一辅助平面:多文种补充平面(supplementary multilingual plane, SMP) 和第二辅助平面:表意文字补充平面(supplementary ideographic plane, SIP) 。第三至十三辅助平面尚未使用。第十四辅助平面称为特别用途补充平面(supplementary special-purpose plane, SSP) ,其中是控制字符。剩下的两个平面是私人使用区(private use area) 。
一个平面内的代码点可以被两个八元组(octet) 表示,也就是 16 位二进制整数。一般 C/C++ 实现使用的一个字节正好有 8 位,但不总是保证。