字符编码与本地化设置详解
1. 字符编码
1.1 POSIX 字符集与其他字符集
POSIX 字符集包含 256 个单字节字符,涵盖了特定表格中的字符,这些字符具有特定属性。未在表格中列出的字符是否归类为标点或控制字符未作明确规定。其他字符集包含特定表格中的字符,可能包含部分或全部控制字符,额外字符的存在、含义和表示取决于具体的本地化设置。
1.2 状态相关编码类型
在非 POSIX 字符集中,字符可能有状态相关的编码,主要有两种类型:
- 单移编码 :不在初始移位状态的每个字符前有一个移位码,若每个移位码和字符序列被视为多字节字符,可使用特定格式定义。若实现支持这种编码,所有标准实用工具都应支持。在未明确提及状态相关编码影响的函数中使用单移编码,其行为由实现定义。
- 锁定移位编码 :字符状态由移位码决定,可能影响后续多个字符。当前字符集描述文件格式无法定义这种编码。在未明确提及状态相关编码影响的标准实用工具或函数中使用锁定移位编码,其行为由实现定义。
1.3 字符解释规则
在初始移位状态下,可移植字符集中的所有字符保留其常规解释,且不改变移位状态。序列中后续字节的解释取决于当前移位状态。全为零的字节被解释为空字符,与移位状态无关,且不会作为其他字符的一部分出现。同样,用于编码特定字符(如句号、斜杠、换行符和回车符)的字节值不会作为任何其他字符的一部分出现。
1.4 字符最大字节数
当前本地化设置中字符允许的最大字节数由 <stdlib.h>
超级会员免费看
订阅专栏 解锁全文
1674

被折叠的 条评论
为什么被折叠?



