エスケープシーケンス

ウィキペディアから無料の百科事典

エスケープシーケンス (escape sequence) とは、コンピュータシステムにおいて、通常の文字列では表せない特殊な文字や機能を、規定された特別な文字の並びにより表したもの。

具体例[編集]

代表的なものに、C言語の文字列リテラル中でバックスラッシュ(\、U+005C)で始めることで改行コードなどを表現するものや、エスケープコード (U+001B, ESC) で始めるISO/IEC 2022 (JIS X 0202) における文字集合の指示・呼び出しのシーケンス(漢字シフトコードも参照)や、ISO/IEC 6429 (ECMA-48、JIS X 0211) の画面制御シーケンス(いわゆる「ANSIエスケープシーケンス英語版」)がある。

なお、U+001B に続くオクテット列は、特定の文字集合に属するわけではないので、本来は符号表上の行と列で記述するが、以下の例で括弧内に示したように対応するASCIIの文字で記述することも便宜上広く行われている。

ISO/IEC 2022の例[編集]

  • ESC 2/8 4/2 (ESC ( B) - US-ASCIIをG0に指示する。
  • ESC 2/4 4/2 (ESC $ B) - JIS X 0208をG0に指示する。

ISO/IEC 6429の例[編集]

  • ESC 5/11 3/2 4/10 (ESC [ 2 J) - 画面を消去する。
  • ESC 5/11 y 3/11 x 4/8 (ESC [ y ; x H) - 画面上の第 y 行第 x 列にカーソルを移動する(x および y はASCIIの数字3/0~3/9で構成)。

キャラクタ端末の画面を制御するエスケープシーケンスは、DECVT100のものが事実上の標準となっている(ANSIエスケープシーケンスはVT100のサブセットである)が、製品ごとにさまざまな仕様が存在する。そのため、UNIXの端末情報データベース (termcap, terminfo) には、多数の端末の画面制御エスケープシーケンスが記述されている。