Наборы символов и кодировки
Основной набор символов
Основной набор символов состоит из следующих 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 .. 9 | 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 в списке вышеуказанных десятичных цифр должно быть на единицу больше, чем значение предыдущего. Нулевой символ U+0000 NULL имеет значение 0.
Представление каждого элемента основного набора управляющих символов умещается в байте.
В C++ основной набор управляющих символов также известен как основной набор литеральных символов и основной набор управляющих широких символов.
Кодировка литералов
Кодировка литералов это определяемое реализацией отображение управляющих символов из основного набора в значения символьных констант или строковых литералов без кодирования префикса. Она поддерживает отображение всех значений из основного набора управляющих символов в кодировку, определенную реализацией. Она может содержать многобайтовые последовательности символов.
|
Следующие символы не включены в основной набор управляющих символов, однако требуется, чтобы они были закодированы одним байтом в обычной символьной константе или обычном строковом литерале.
|
(начиная с C23) |
Кодировка широких литералов это определяемое реализацией отображение символов из управляющего набора в значения констант с префиксом L или строковые литералы. Она поддерживает отображение всех значений из основного набора управляющих символов в кодировку, определенную реализацией. Если реализация не определяет __STDC_MB_MIGHT_NEQ_WC__, то отображение порождает значения, идентичные кодировке литералов для всех значений основного набора управляющих символов. Одно или несколько значений могут отображаться в одно или несколько значений расширенного набора управляющих символов.
|
Кодировка UTF-8 используется для отображения символов из управляющего набора в символьные константы (начиная с C23) с префиксом Определяемая реализацией кодировка (до C23)Кодировка UTF-16 (начиная с C23) используется для отображения символов из управляющего набора в символьные константы с префиксом Определяемая реализацией кодировка (до C23)Кодировка UTF-32 (начиная с C23) используется для отображения символов из управляющего набора в символьные константы с префиксом |
(начиная с C11) |
См. также
| Таблица ASCII | |
Документация C++ по Наборы символов и кодировки
|