Zeichensätze und Kodierungen
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
|
| 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
|
| 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.
|
(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 Eine implementierungsabhängige Kodierung(bis C23)Die UTF-16-Kodierung(seit C23) wird verwendet, um Zeichen des Ausführungs-Zeichensatzes auf eine mit Eine implementierungsabhängige Kodierung(bis C23)Die UTF-32-Kodierung(seit C23) wird verwendet, um Zeichen des Ausführungs-Zeichensatzes auf eine mit |
(seit C11) |
[bearbeiten] Siehe auch
| ASCII-Tabelle | |
| C++ Dokumentation für Zeichensätze und Kodierungen
|