7. Strings (文字列)
文字列の表現は, C言語ファミリーのプログラミング言語で使用される規約に似ています。文字列は引用符で始まり終わります。すべてのUnicode文字は引用符内に配置できますが, エスケープする必要がある文字は除外されます: 引用符, バックスラッシュ, および制御文字 (U+0000からU+001F)。
任意の文字をエスケープできます。文字が基本多言語面 (BMP) (U+0000からU+FFFF) にある場合, 6文字のシーケンスとして表現できます: バックスラッシュ, 続いて小文字のu, 続いて文字のコードポイントをエンコードする4つの16進数字。16進文字AからFは大文字または小文字にできます。したがって, たとえば, 単一のバックスラッシュ文字のみを含む文字列は "\u005C" として表現できます。
あるいは, 一般的に使用される一部の文字には2文字シーケンスのエスケープ表現があります。したがって, たとえば, 単一のバックスラッシュ文字のみを含む文字列は, よりコンパクトに "\\" として表現できます。
基本多言語面にない拡張文字をエスケープするには, その文字は12文字のシーケンスとして表現され, UTF-16サロゲートペアをエンコードします。したがって, たとえば, ト音記号文字 (U+1D11E) のみを含む文字列は "\uD834\uDD1E" として表現できます。
string = quotation-mark *char quotation-mark
char = unescaped /
escape (
%x22 / ; " 引用符 U+0022
%x5C / ; \ バックスラッシュ U+005C
%x2F / ; / スラッシュ U+002F
%x62 / ; b バックスペース U+0008
%x66 / ; f 改ページ U+000C
%x6E / ; n 改行 U+000A
%x72 / ; r 復帰 U+000D
%x74 / ; t タブ U+0009
%x75 4HEXDIG ) ; uXXXX U+XXXX
escape = %x5C ; \
quotation-mark = %x22 ; "
unescaped = %x20-21 / %x23-5B / %x5D-10FFFF