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 LINE FEED (LF) не включен в базовый набор символов. Вместо этого должен существовать некоторый способ указания конца каждой строки текста в исходном файле, и документ трактует такой индикатор конца строки как одиночный символ новой строки.
Базовый набор символов также известен как базовый набор символов исходного кода .
Базовый набор символов выполнения
Базовый набор символов выполнения содержит все элементы базового набора символов, а также следующие символы:
| Кодовый блок | Символ |
|---|---|
| U+0000 | Null |
| U+0007 | Bell |
| U+0008 | Backspace |
| U+000A | Перевод строки (LF) |
| U+000D | Возврат каретки (CR) |
Для каждого базового набора символов выполнения значения элементов должны быть неотрицательными и отличаться друг от друга. Как в исходном, так и в выполняемом базовых наборах символов значение каждого символа после 0 в приведенном выше списке десятичных цифр должно быть на единицу больше значения предыдущего. Символ U+0000 NULL имеет значение 0.
Представление каждого члена базового набора символов выполнения помещается в байт.
В C++, базовый набор символов выполнения также известен как базовый набор литеральных символов и базовый набор широких символов выполнения .
Кодировки литералов
literal encoding — это определяемое реализацией отображение символов исполнительного набора символов в значения внутри символьной константы или строкового литерала без префикса кодировки. Оно поддерживает отображение всех значений базового исполнительного набора символов в определяемую реализацией кодировку. Может содержать многобайтовые последовательности символов.
|
Следующие символы не входят в базовый набор символов выполнения, но они должны кодироваться как один байт в обычной символьной константе или обычном строковом литерале.
|
(начиная с 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++
для
Наборы символов и кодировки
|