Namespaces
Variants

Character sets and encodings

From cppreference.net

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

N O P Q R S T U V W X Y Z

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

n o p q r s t u v w x y z

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.

Codepunkt Zeichen Glyphe
U+0024 Dollarzeichen $
U+0040 Klammeraffe @
U+0060 Gravis `
(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 u8 -präfigiertes Zeichenliteral oder (seit C23) Zeichenkettenliteral abzubilden.

Eine implementierungsdefinierte Kodierung (bis C23) Die UTF-16-Kodierung (seit C23) wird verwendet, um Zeichen des Ausführungszeichensatzes auf ein u -präfigiertes Zeichenliteral oder Zeichenkettenliteral abzubilden.

Eine implementierungsdefinierte Kodierung (bis C23) Die UTF-32-Kodierung (seit C23) wird verwendet, um Zeichen des Ausführungszeichensatzes auf ein U -präfigiertes Zeichenliteral oder Zeichenkettenliteral abzubilden.

(seit C11)

Siehe auch

ASCII-Tabelle
C++-Dokumentation für Zeichensätze und Codierungen