Spec-Zone.ru › C

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

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

Основной набор символов состоит из следующих 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 (Перевод строки (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__, отображение производит значения, идентичные кодировке литералов, для всех значений основного набора символов выполнения. Одно или несколько значений могут соответствовать одному или нескольким значениям расширенного набора символов выполнения.

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

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

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

(с C11)

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/charset

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API