7. Strings (文字列)
文字列の表現は、Cファミリーのプログラミング言語で使用される慣例と似ています。文字列は引用符で始まり、引用符で終わります。すべての Unicode 文字を引用符内に配置できますが、エスケープしなければならない (MUST) 文字を除きます:引用符 (Quotation Mark)、逆斜線 (Reverse Solidus)、および制御文字(U+0000 から U+001F)。
任意の文字をエスケープできます。文字が基本多言語面 (Basic Multilingual Plane, BMP)(U+0000 から U+FFFF)内にある場合、6文字のシーケンスとして表現できます:逆斜線、次に小文字の u、次に文字のコードポイントをエンコードする4つの16進数字。16進文字 A から F は大文字または小文字にできます。したがって、例えば、単一の逆斜線文字のみを含む文字列は "\u005C" として表現できます。
あるいは、一般的な文字の2文字シーケンスエスケープ表現があります。したがって、例えば、単一の逆斜線文字のみを含む文字列は、よりコンパクトに "\\" として表現できます。
基本多言語面にない拡張文字をエスケープするには、UTF-16 サロゲートペア (Surrogate Pair) をエンコードする12文字のシーケンスとして文字を表現します。したがって、例えば、Gクレフ文字(U+1D11E)のみを含む文字列は "\uD834\uDD1E" として表現できます。
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