命名空间
变体
操作

字符集和编码

来自 cppreference.cn
< 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 之后每个字符的值应比前一个字符的值大一。U+0000 空字符的值为 0。

基本执行字符集的每个成员的表示都适合一个字节。

在 C++ 中,基本执行字符集也称为基本字面量字符集基本执行宽字符集

[编辑] 字面量编码

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

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

代码单元 字符 字形
U+0024 美元符号 $
U+0040 商业 at 符 @
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++ 文档关于 字符集和编码