エスケープシーケンスとは、
コンピュータシステムにおいて、通常の
文字列では表現できない特殊な
文字や機能を、あらかじめ定められた特別な
文字の並びによって表現する技術のことです。これは、テキストデータ内で、改行、タブ、特殊
文字、色などの制御コードを埋め込むために用いられます。
具体例
C言語におけるエスケープシーケンス:
C言語の文字列リテラルでは、バックスラッシュ(\)に続く特定の文字の組み合わせで特殊な意味を持つ文字を表します。例えば、
は改行、\tはタブを表します。
ISO/IEC 2022|ISO_IEC 2022 (JIS X 0202) におけるエスケープシーケンス:
エスケープコード(ESC, U+001B)で始まるシーケンスは、
文字集合の指示や呼び出しに使われます。例えば、漢字シフトコードもこの一種です。これにより、異なる
文字コードセットを切り替えて表示することが可能です。
例:
`ESC ( B` : US-
ASCIIをG0に指定
`ESC $ B` : JIS X 0208をG0に指定
ISO/IEC 6429 (ECMA-48, JIS X 0211) におけるエスケープシーケンス(ANSIエスケープシーケンス):
これもエスケープコード(ESC, U+001B)で始まり、画面制御などに用いられます。特に、ANSIエスケープシーケンスは広く利用されています。
例:
`ESC [ 2 J` : 画面を消去
* `ESC [ y ; x H` :
カーソルを画面上のy行x列に移動(yとxは数字で指定)
エスケープシーケンスの構造
エスケープシーケンスは、通常、エスケープ
文字(多くの場合、ESC、または
バックスラッシュ)とそれに続く制御コードで構成されます。制御コードは、特定の機能(例えば、
文字色を変更、
カーソル位置を移動など)を指示します。これらのシーケンスは、テキストデータ中に埋め込まれることで、画面表示やデータの処理を制御します。特に、
文字コードや画面制御では、エスケープシーケンスが不可欠な役割を果たしています。
キャラクタ端末とエスケープシーケンス
キャラクタ
端末では、エスケープシーケンスが画面表示や
カーソル制御に利用されます。DECのVT100
端末のエスケープシーケンスは事実上の標準となっており、ANSIエスケープシーケンスはそのサブセットです。しかし、
端末の種類ごとに異なるエスケープシーケンスが存在するため、
UNIXの
端末情報データベース(termcap, terminfo)には、多種多様な
端末のエスケープシーケンスが記録されています。これにより、異なる
端末でも同じように画面表示や操作ができるようになります。
エスケープシーケンスの重要性
エスケープシーケンスは、
コンピュータシステムにおけるテキストデータの表現と制御において重要な役割を果たします。特に、異なる
文字コードセットを使用する場合や、ターミナル上での画面制御を行う場合に、エスケープシーケンスは不可欠です。これらのシーケンスを理解することは、システム開発やプログラミングにおいて非常に有益です。
エスケープシーケンスは、
文字コード、
端末制御、プログラミング言語など、様々な分野で利用される基本的な技術であり、
コンピュータの内部動作を理解する上で重要な概念です。