Character sets and encodings
目录 |
基本字符集
基本字符集 由以下 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++中,基本执行字符集也被称为 基本字面字符集 和 基本执行宽字符集 。
字面值编码
字面量编码 是一种实现定义的映射,它将执行字符集中的字符映射到无编码前缀的 字符常量 或 字符串字面量 中的值。该编码支持将所有基本执行字符集的值映射到实现定义的编码中,且可能包含多字节字符序列。
|
以下字符不属于基本执行字符集,但要求在普通字符常量或普通字符串字面量中编码为单字节。
|
(since C23) |
宽字面编码是一种实现定义的映射,将执行字符集中的字符映射到以
L
为前缀的字符常量或字符串字面值中的值。它支持将所有基本执行字符集值映射到实现定义的编码中。如果实现未定义
__STDC_MB_MIGHT_NEQ_WC__
,则对于所有基本执行字符集值,该映射产生的值与字面编码完全相同。一个或多个值可以映射到扩展执行字符集的一个或多个值。
|
UTF-8编码用于将执行字符集的字符映射到带
实现定义的编码
(until C23)
UTF-16编码
(since C23)
用于将执行字符集的字符映射到带
实现定义的编码
(until C23)
UTF-32编码
(since C23)
用于将执行字符集的字符映射到带
|
(since C11) |
参见
| ASCII 码表 | |
|
C++ 文档
关于
字符集与编码
|