字符集与编码

来自cppreference.com
< c‎ | language


基本字符集

“基本字符集”由如下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)不属于基本字符集。相反,它在源文件中表示文本一行的结束,并且文档将这看作一个换行符。

基本字符集也称为 基本源字符集

基本执行字符集

The 基本执行字符集包括基本字符集的所有字符,以及如下内容:

编码单元 字符
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 前缀字符常量或字符字符串字面的值,的映射。它支持从基本执行字符集的所有值到实现定义编码的映射。如果实现没有定义 ,映射结果值和基本执行字符集字面量值编码完全相同。一个或多个值或许映射到扩展字符集的一个或多个值。

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

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

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

(C11 起)

See also

ASCII 码表