命名空间
变体
操作

字符集和编码

来自 cppreference.com
< c‎ | 语言

内容

[编辑] 基本字符集

基本字符集 包含以下 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

N O P Q R S T U V W X Y Z

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

n o p q r s t u v w x y z

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++ 中,基本执行字符集也称为 基本字面量字符集基本执行宽字符集

[编辑] 字面量编码

字面量编码 是将执行字符集中的字符映射到 字符常量字符串字面量 中的值的实现定义映射,而无需编码前缀。它支持从所有基本执行字符集值到实现定义编码的映射。它可能包含多字节字符序列。

以下字符不在基本执行字符集中,但需要在普通字符常量或普通字符串字面量中以单个字节编码。

代码单元 字符 字形
U+0024 美元符号 $
U+0040 商业符号 @
U+0060 重音符 `
(自 C23 起)

宽字面量编码 是将执行字符集中的字符映射到 L 前缀字符常量或字符串字面量中的值的实现定义映射。它支持从所有基本执行字符集值到实现定义编码的映射。如果实现未定义 __STDC_MB_MIGHT_NEQ_WC__,则该映射对于所有基本执行字符集值生成与字面量编码相同的值。一个或多个值可能映射到扩展执行字符集中的一个或多个值。

UTF-8 编码用于将执行字符集中的字符映射到 u8 前缀 字符常量或(自 C23 起) 字符串字面量。

实现定义编码(直到 C23)UTF-16 编码(自 C23 起) 用于将执行字符集中的字符映射到 u 前缀字符常量或字符串字面量。

实现定义编码(直到 C23)UTF-32 编码(自 C23 起) 用于将执行字符集中的字符映射到 U 前缀字符常量或字符串字面量。

(自 C11 起)

[编辑] 另请参阅

ASCII 表
C++ 文档 针对 字符集和编码