字符集和编码
内容 |
[编辑] 基本字符集
基本字符集 包含以下 95 个字符
代码单元 | 字符 | 字形 |
---|---|---|
U+0009 | 字符制表符 | |
U+000B | 行制表符 | |
U+000C | 换页符 (FF) | |
U+0020 | 空格 | |
U+0021 | 感叹号 | !
|
U+0022 | 引号 | "
|
U+0023 | 井号 | #
|
U+0025 | 百分号 | %
|
U+0026 | 和号 | &
|
U+0027 | 撇号 | '
|
U+0028 | 左括号 | (
|
U+0029 | 右括号 | )
|
U+002A | 星号 | *
|
U+002B | 加号 | +
|
U+002C | 逗号 | ,
|
U+002D | 连字符 | -
|
U+002E | 句号 | .
|
U+002F | 斜杠 | /
|
U+0030 .. U+0039 | 数字零 .. 九 | 0 1 2 3 4 5 6 7 8 9
|
U+003A | 冒号 | :
|
U+003B | 分号 | ;
|
U+003C | 小于号 | <
|
U+003D | 等号 | =
|
U+003E | 大于号 | >
|
U+003F | 问号 | ?
|
U+0041 .. U+005A | 拉丁大写字母 A .. Z | A B C D E F G H I J K L M
|
U+005B | 左方括号 | [
|
U+005C | 反斜杠 | \
|
U+005D | 右方括号 | ]
|
U+005E | 插入符号 | ^
|
U+005F | 下划线 | _
|
U+0061 .. U+007A | 拉丁小写字母 a .. z | a b c d e f g h i j k l m
|
U+007B | 左大括号 | {
|
U+007C | 竖线 | |
|
U+007D | 右大括号 | }
|
U+007E | 波浪号 | ~
|
与 C++ 不同,U+000A 换行符 (LF) 字符不包含在基本字符集中。相反,应该有某种方式来指示源文件中每行文本的结束,并且文档将此类行尾指示符视为单个换行符。
基本字符集也称为 基本源字符集。
[编辑] 基本执行字符集
基本执行字符集 包含基本字符集的所有成员,以及以下字符
代码单元 | 字符 |
---|---|
U+0000 | 空字符 |
U+0007 | 响铃 |
U+0008 | 退格键 |
U+000A | 换行符 (LF) |
U+000D | 回车符 (CR) |
对于每个基本执行字符集,成员的值应为非负数且彼此不同。在源和执行基本字符集中,上面十进制数字列表中 0 之后每个字符的值都比前一个值大 1。U+0000 空字符的值为 0。
每个基本执行字符集成员的表示都适合一个字节。
在 C++ 中,基本执行字符集也称为 基本字面量字符集 和 基本执行宽字符集。
[编辑] 字面量编码
字面量编码 是将执行字符集中的字符映射到 字符常量 或 字符串字面量 中的值的实现定义映射,而无需编码前缀。它支持从所有基本执行字符集值到实现定义编码的映射。它可能包含多字节字符序列。
以下字符不在基本执行字符集中,但需要在普通字符常量或普通字符串字面量中以单个字节编码。
|
(自 C23 起) |
宽字面量编码 是将执行字符集中的字符映射到 L
前缀字符常量或字符串字面量中的值的实现定义映射。它支持从所有基本执行字符集值到实现定义编码的映射。如果实现未定义 __STDC_MB_MIGHT_NEQ_WC__
,则该映射对于所有基本执行字符集值生成与字面量编码相同的值。一个或多个值可能映射到扩展执行字符集中的一个或多个值。
UTF-8 编码用于将执行字符集中的字符映射到 实现定义编码(直到 C23)UTF-16 编码(自 C23 起) 用于将执行字符集中的字符映射到 实现定义编码(直到 C23)UTF-32 编码(自 C23 起) 用于将执行字符集中的字符映射到 |
(自 C11 起) |
[编辑] 另请参阅
ASCII 表 | |
C++ 文档 针对 字符集和编码
|