命名空间
变体
操作

字符集和编码

来自 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 之后的每个字符的值应比前一个字符的值大 1。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++ 文档,关于 字符集和编码