Zum Hauptinhalt springen

7. Strings (Zeichenketten)

Die Darstellung von Zeichenketten ist ähnlich den Konventionen, die in der C-Familie von Programmiersprachen verwendet werden. Eine Zeichenkette beginnt und endet mit Anführungszeichen. Alle Unicode-Zeichen können innerhalb der Anführungszeichen platziert werden, mit Ausnahme der Zeichen, die maskiert werden müssen (MUST): Anführungszeichen, umgekehrter Schrägstrich und die Steuerzeichen (U+0000 bis U+001F).

Jedes Zeichen kann maskiert werden. Wenn sich das Zeichen in der Basis-Mehrsprachigen-Ebene (Basic Multilingual Plane, BMP) (U+0000 bis U+FFFF) befindet, kann es als Sechs-Zeichen-Sequenz dargestellt werden: ein umgekehrter Schrägstrich, gefolgt vom Kleinbuchstaben u, gefolgt von vier hexadezimalen Ziffern, die den Codepunkt des Zeichens kodieren. Die Hexadezimalbuchstaben A bis F können groß oder klein geschrieben werden. So kann beispielsweise eine Zeichenkette, die nur ein einzelnes umgekehrtes Schrägstrich-Zeichen enthält, als "\u005C" dargestellt werden.

Alternativ gibt es Zwei-Zeichen-Sequenz-Escape-Darstellungen einiger beliebter Zeichen. So kann beispielsweise eine Zeichenkette, die nur ein einzelnes umgekehrtes Schrägstrich-Zeichen enthält, kompakter als "\\" dargestellt werden.

Um ein erweitertes Zeichen zu maskieren, das sich nicht in der Basis-Mehrsprachigen-Ebene befindet, wird das Zeichen als 12-Zeichen-Sequenz dargestellt, die das UTF-16-Surrogatpaar (Surrogate Pair) kodiert. So kann beispielsweise eine Zeichenkette, die nur das G-Schlüssel-Zeichen (U+1D11E) enthält, als "\uD834\uDD1E" dargestellt werden.

string = quotation-mark *char quotation-mark

char = unescaped /
escape (
%x22 / ; " quotation mark U+0022
%x5C / ; \ reverse solidus U+005C
%x2F / ; / solidus U+002F
%x62 / ; b backspace U+0008
%x66 / ; f form feed U+000C
%x6E / ; n line feed U+000A
%x72 / ; r carriage return U+000D
%x74 / ; t tab U+0009
%x75 4HEXDIG ) ; uXXXX U+XXXX

escape = %x5C ; \
quotation-mark = %x22 ; "
unescaped = %x20-21 / %x23-5B / %x5D-10FFFF