Пространства имён
Варианты
Действия

Наборы символов и кодировки

Материал из cppreference.com

Основной набор символов

Основной набор символов состоит из следующих 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

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 в списке вышеуказанных десятичных цифр должно быть на единицу больше, чем значение предыдущего. Нулевой символ U+0000 NULL имеет значение 0.

Представление каждого элемента основного набора управляющих символов умещается в байте.

В C++ основной набор управляющих символов также известен как основной набор литеральных символов и основной набор управляющих широких символов.

Кодировка литералов

Кодировка литералов это определяемое реализацией отображение управляющих символов из основного набора в значения символьных констант или строковых литералов без кодирования префикса. Она поддерживает отображение всех значений из основного набора управляющих символов в кодировку, определенную реализацией. Она может содержать многобайтовые последовательности символов.

Следующие символы не включены в основной набор управляющих символов, однако требуется, чтобы они были закодированы одним байтом в обычной символьной константе или обычном строковом литерале.

Кодовая единица Символ Глиф
U+0024 Доллар $
U+0040 Символ собака @
U+0060 Апостроф `
(начиная с C23)

Кодировка широких литералов это определяемое реализацией отображение символов из управляющего набора в значения констант с префиксом L или строковые литералы. Она поддерживает отображение всех значений из основного набора управляющих символов в кодировку, определенную реализацией. Если реализация не определяет __STDC_MB_MIGHT_NEQ_WC__, то отображение порождает значения, идентичные кодировке литералов для всех значений основного набора управляющих символов. Одно или несколько значений могут отображаться в одно или несколько значений расширенного набора управляющих символов.

Кодировка UTF-8 используется для отображения символов из управляющего набора в символьные константы (начиная с C23) с префиксом u8 или строковые литералы.

Определяемая реализацией кодировка (до C23)Кодировка UTF-16 (начиная с C23) используется для отображения символов из управляющего набора в символьные константы с префиксом u или строковые литералы.

Определяемая реализацией кодировка (до C23)Кодировка UTF-32 (начиная с C23) используется для отображения символов из управляющего набора в символьные константы с префиксом U или строковые литералы.

(начиная с C11)

См. также

Таблица ASCII
Документация C++ по Наборы символов и кодировки