Namensräume
Varianten
Aktionen

Zeichensätze und Kodierungen

Von cppreference.com
< c‎ | Sprache

Inhalt

[bearbeiten] Basis-Zeichensatz

Der Basis-Zeichensatz besteht aus den folgenden 95 Zeichen

Code-Einheit Zeichen Glyphe
U+0009 Horizontale Tabulator
U+000B Vertikale Tabulator
U+000C Formularvorschub (FF)
U+0020 Leerzeichen
U+0021 Ausrufezeichen !
U+0022 Anführungszeichen "
U+0023 Nummernschild #
U+0025 Prozentzeichen %
U+0026 Kaufmännisches 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 Umgekehrter Schrägstrich \
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 Zeichen U+000A LINE FEED (LF) nicht im Basis-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 so, als wäre er ein einzelnes neues Zeilenzeichen.

Der Basis-Zeichensatz ist auch als Basis-Quellcode-Zeichensatz bekannt.

[bearbeiten] Basis-Ausführungs-Zeichensatz

Der Basis-Ausführungs-Zeichensatz enthält alle Mitglieder des Basis-Zeichensatzes sowie die folgenden Zeichen

Code-Einheit Zeichen
U+0000 Null
U+0007 Glocke
U+0008 Rücktaste
U+000A Zeilenvorschub (LF)
U+000D Wagenrücklauf (CR)

Für jeden Basis-Ausführungs-Zeichensatz müssen die Werte der Mitglieder nicht-negativ und voneinander verschieden sein. Sowohl im Quell- als auch im Ausführungs-Basis-Zeichensatz muss der Wert jedes Zeichens nach 0 in der obigen Liste der Dezimalziffern um eins größer sein als der Wert des vorherigen. Das Zeichen U+0000 NULL hat den Wert 0.

Die Darstellung jedes Mitglieds der Basis-Ausführungs-Zeichensätze passt in ein Byte.

In C++ ist der Basis-Ausführungs-Zeichensatz auch als Basis-Literal-Zeichensatz und Basis-Ausführungs-Breitzeichen-Zeichensatz bekannt.

[bearbeiten] Literal-Kodierungen

Die Literal-Kodierung ist eine implementierungsabhängige Abbildung der Zeichen des Ausführungs-Zeichensatzes auf die Werte in einer Zeichenkonstante oder einem String-Literal ohne Kodierungspräfix. Sie unterstützt eine Abbildung von allen Basis-Ausführungs-Zeichensatzwerten in die implementierungsabhängige Kodierung. Sie kann Mehrbyte-Zeichensequenzen enthalten.

Die folgenden Zeichen gehören nicht zum Basis-Ausführungs-Zeichensatz, müssen aber als einzelnes Byte in einer normalen Zeichenkonstante oder einem normalen String-Literal kodiert werden.

Code-Einheit Zeichen Glyphe
U+0024 Dollarzeichen $
U+0040 Kaufmännisches At @
U+0060 Gravis `
(seit C23)

Die Breitzeichen-Literal-Kodierung ist eine implementierungsabhängige Abbildung der Zeichen des Ausführungs-Zeichensatzes auf die Werte in einer mit L präfigierten Zeichenkonstante oder einem String-Literal. Sie unterstützt eine Abbildung von allen Basis-Ausführungs-Zeichensatzwerten in die implementierungsabhängige Kodierung. Wenn eine Implementierung __STDC_MB_MIGHT_NEQ_WC__ nicht definiert, erzeugt die Abbildung für alle Basis-Ausführungs-Zeichensatzwerte identische Werte zur Literal-Kodierung. Ein oder mehrere Werte können auf einen oder mehrere Werte des erweiterten Ausführungs-Zeichensatzes abgebildet werden.

Die UTF-8-Kodierung wird verwendet, um Zeichen des Ausführungs-Zeichensatzes auf eine mit u8 präfigierte Zeichenkonstante oder(seit C23) String-Literal abzubilden.

Eine implementierungsabhängige Kodierung(bis C23)Die UTF-16-Kodierung(seit C23) wird verwendet, um Zeichen des Ausführungs-Zeichensatzes auf eine mit u präfigierte Zeichenkonstante oder ein String-Literal abzubilden.

Eine implementierungsabhängige Kodierung(bis C23)Die UTF-32-Kodierung(seit C23) wird verwendet, um Zeichen des Ausführungs-Zeichensatzes auf eine mit U präfigierte Zeichenkonstante oder ein String-Literal abzubilden.

(seit C11)

[bearbeiten] Siehe auch

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