5.2.2 多字节字符
源字符集可以包含多字节字符,用来表示扩展字符集中的成员。执行字符集也可以包含多字节字符,并且它们不要求与源字符集使用相同编码。对于这两套字符集,都应满足以下要求:
- 基本字符集必须存在,并且其中每个字符都必须编码为单字节。
- 任何附加成员的存在、含义和表示方式,都与区域设置相关。
- 多字节字符集可以采用与状态相关的编码:每个多字节字符序列起始于初始移位状态,在序列中遇到特定多字节字符时进入其他与区域设置相关的移位状态;在初始移位状态下,所有单字节字符都保持其通常含义,并且不会改变移位状态;序列中后续字节的解释取决于当前移位状态。
- 所有位都为
0的字节,应被解释为空字符,且不依赖移位状态;这样的字节不得作为任何其他多字节字符的一部分出现。
对于源文件,还应满足以下要求:
- 标识符、注释、字符串字面量、字符常量或头名称,都必须在初始移位状态下开始并结束。
- 标识符、注释、字符串字面量、字符常量或头名称,都必须由有效多字节字符序列构成。