Наборы символов и кодировки
Основной набор символов
Основной набор символов состоит из следующих 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 (Перевод строки (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__, отображение производит значения, идентичные кодировке литералов, для всех значений основного набора символов выполнения. Одно или несколько значений могут соответствовать одному или нескольким значениям расширенного набора символов выполнения.
| Для сопоставления символов набора символов выполнения с Определяемая реализацией кодировка(до C23)Кодировка UTF-16(с C23) используется для сопоставления символов набора символов выполнения с Определяемая реализацией кодировка(до C23)Кодировка UTF-32(с C23) используется для сопоставления символов набора символов выполнения с | (с C11) |
См. также
| Диаграмма ASCII | |
| Документация C++ по Наборам символов и кодировкам |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/charset