Namespaces
Variants

Character sets and encodings

From cppreference.net

Содержание

Базовый набор символов

Основной набор символов состоит из следующих 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 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 — это определяемое реализацией отображение символов исполнительного набора символов в значения внутри символьной константы или строкового литерала без префикса кодировки. Оно поддерживает отображение всех значений базового исполнительного набора символов в определяемую реализацией кодировку. Может содержать многобайтовые последовательности символов.

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

Кодовая точка Символ Глиф
U+0024 Dollar Sign $
U+0040 Commercial At @
U+0060 Grave Accent `
(начиная с C23)

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

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

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

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

(since C11)

Смотрите также

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