14.1 エスケープシーケンス (escape sequences)

バックスラッシュ文字 \ は、1 バイト文字コード、または Unicode コードポ イントをエスケープするのに使います。

\ooo の形式 (ooo は 8 進値の 3 文字) は、特定のフォントエンコード内の 文字コード番号を指し示すのに使えます。例えば、Adobe Symbol フォントは、 無限大の記号を 8 進 245 番で示すようなカスタムエンコードを使用します。 これは、拡張文字列としてフォント名と文字コードを "{/Symbol \245}" のよ うに指定することで埋め込むことができます。これは主に PostScript 出力形 式で有用ですが、これは UTF-8 エンコーディングの処理は容易には行えませ ん。

\U+hhhh の形式の Unicode のコードポイントで文字を指定することができま す。ここで hhhh は 16 進値の 4 または 5 文字です。例えば、無限大の記号 ∞のコードポイントは \U+221E です。これは、必要ならば出力時に UTF-8 の バイト列に変換されます。UTF-8 環境では、印字可能な特殊文字は他の文字と 同様に文字列内で処理できるので、この仕組みは必要ありません。しかしこれ は結合文字や発音区別符号 (例えばベクトルを意味するための文字の上の矢印 など) には有用です。以下参照: utf8 (116.27), string encoding (30.4)。または オンラインユニコードデモ

を参照。

Unicode エスケープコードは、解釈されずに文字列に保存されることに注意し てください。エスケープコードは、その文字列が出力されるか部分文字列処理 の評価の際に、それが示す文字に置き換えます。よって、文字列 S = "A + \U+03A3 B" の定義後では、S[5:5] は " \" でなく "Σ" と評価しま すが、(S eq S[1:*]) は FALSE と評価します。それは、S には処理されてい ないエスケープシーケンス自身が含まれるのに対し、S[1:*] の評価の際には エスケープシーケンスが Σ に対する UTF-8 のバイト列に置き換わるからで す。plot で使用する際は、どちらも "A + Σ B" と表示されます。

竹野茂治@新潟工科大学
2025-07-31