Character sets and encodings
Inhaltsverzeichnis |
Basis-Zeichensatz
Das Basiszeichensatz besteht aus den folgenden 95 Zeichen:
| Codepunkt | Zeichen | Glyphe |
|---|---|---|
| U+0009 | Zeichentabulator | |
| U+000B | Zeilentabulator | |
| U+000C | Seitenvorschub (FF) | |
| U+0020 | Leerzeichen | |
| U+0021 | Ausrufezeichen |
!
|
| U+0022 | Anführungszeichen |
"
|
| U+0023 | Doppelkreuz |
#
|
| U+0025 | Prozentzeichen |
%
|
| U+0026 | Kaufmanns-Und |
&
|
| U+0027 | Apostroph |
'
|
| U+0028 | Linke Klammer |
(
|
| U+0029 | Rechte Klammer |
)
|
| U+002A | Sternchen |
*
|
| U+002B | Pluszeichen |
+
|
| U+002C | Komma |
,
|
| U+002D | Bindestrich-Minus |
-
|
| U+002E | Punkt |
.
|
| U+002F | Schrägstrich |
/
|
| U+0030 .. U+0039 | Ziffer null .. neun |
0 1 2 3 4 5 6 7 8 9
|
| U+003A | Doppelpunkt |
:
|
| U+003B | Semikolon |
;
|
| U+003C | Kleiner-als-Zeichen |
<
|
| U+003D | Gleichheitszeichen |
=
|
| U+003E | Größer-als-Zeichen |
>
|
| U+003F | Fragezeichen |
?
|
| U+0041 .. U+005A | Lateinischer Großbuchstabe A .. Z |
A B C D E F G H I J K L M
|
| U+005B | Linke eckige Klammer |
[
|
| U+005C | Backslash |
\
|
| U+005D | Rechte eckige Klammer |
]
|
| U+005E | Zirkumflex |
^
|
| U+005F | Unterstrich |
_
|
| U+0061 .. U+007A | Lateinischer Kleinbuchstabe a .. z |
a b c d e f g h i j k l m
|
| U+007B | Linke geschweifte Klammer |
{
|
| U+007C | Senkrechter Strich |
|
|
| U+007D | Rechte geschweifte Klammer |
}
|
| U+007E | Tilde |
~
|
Im Gegensatz zu C++ ist das U+000A LINE FEED (LF)-Zeichen nicht im grundlegenden Zeichensatz enthalten. Stattdessen muss es eine Möglichkeit geben, das Ende jeder Textzeile in der Quelldatei anzuzeigen, und das Dokument behandelt einen solchen Zeilenende-Indikator, als ob es sich um ein einzelnes Newline-Zeichen handeln würde.
Der grundlegende Zeichensatz wird auch als basic source character set bezeichnet.
Basis-Zeichensatz für die Ausführung
Der grundlegende Ausführungszeichensatz enthält alle Elemente des Basiszeichensatzes sowie die folgenden Zeichen:
| Code-Einheit | Zeichen |
|---|---|
| U+0000 | Null |
| U+0007 | Bell |
| U+0008 | Backspace |
| U+000A | Line feed (LF) |
| U+000D | Carriage return (CR) |
Für jeden grundlegenden Zeichensatz zur Ausführung müssen die Werte der Mitglieder nicht-negativ und voneinander verschieden sein. In beiden grundlegenden Zeichensätzen, sowohl im Quell- als auch im Ausführungszeichensatz, muss der Wert jedes Zeichens nach 0 in der obigen Liste der Dezimalziffern um eins größer sein als der Wert des vorherigen. Das U+0000 NULL-Zeichen hat den Wert 0.
Die Darstellung jedes Elements des grundlegenden Ausführungszeichensatzes passt in ein Byte.
In C++ wird der basic execution character set auch als basic literal character set und basic execution wide-character set bezeichnet.
Literalkodierungen
Die Literalkodierung ist eine implementierungsdefinierte Abbildung der Zeichen des Ausführungszeichensatzes auf die Werte in einer Zeichenkonstante oder einem Zeichenkettenliteral ohne Kodierungspräfix. Sie unterstützt eine Abbildung aller Basis-Ausführungszeichensatzwerte in die implementierungsdefinierte Kodierung. Sie kann Multibyte-Zeichensequenzen enthalten.
|
Die folgenden Zeichen gehören nicht zum grundlegenden Ausführungszeichensatz, müssen jedoch in einem gewöhnlichen Zeichenliteral oder gewöhnlichen Zeichenkettenliteral als einzelnes Byte kodiert werden.
|
(seit C23) |
Die
wide literal encoding
ist eine implementierungsdefinierte Abbildung der Zeichen des Ausführungszeichensatzes auf die Werte in einem
L
-präfixierten Zeichenliteral oder Stringliteral. Sie unterstützt eine Abbildung aller Werte des grundlegenden Ausführungszeichensatzes in die implementierungsdefinierte Kodierung. Wenn eine Implementierung
__STDC_MB_MIGHT_NEQ_WC__
nicht definiert, erzeugt die Abbildung für alle Werte des grundlegenden Ausführungszeichensatzes identische Werte wie die Literalkodierung. Ein oder mehrere Werte können auf einen oder mehrere Werte des erweiterten Ausführungszeichensatzes abgebildet werden.
|
Die UTF-8-Kodierung wird verwendet, um Zeichen des Ausführungszeichensatzes auf ein
Eine implementierungsdefinierte Kodierung
(bis C23)
Die UTF-16-Kodierung
(seit C23)
wird verwendet, um Zeichen des Ausführungszeichensatzes auf ein
Eine implementierungsdefinierte Kodierung
(bis C23)
Die UTF-32-Kodierung
(seit C23)
wird verwendet, um Zeichen des Ausführungszeichensatzes auf ein
|
(seit C11) |
Siehe auch
| ASCII-Tabelle | |
|
C++-Dokumentation
für
Zeichensätze und Codierungen
|