コンピューティングや通信において、エスケープ文字(エスケープもじ、)とは、それに続く文字について別の解釈をすることを示す文字である。エスケープ文字は、の特定のケースである。通常、何がエスケープ文字であるか、またはそうでないかは、前後関係に依存する。エスケープ文字はプログラミング言語、データフォーマット、通信プロトコルの文法の一部である。エスケープ文字の目的は、エスケープシーケンスと呼ばれる一連の文字列を開始することである。エスケープ文字に続く文字は、エスケープ文字がない時とは別の解釈をしなければならない。エスケープ文字自体は、単独では意味を持っていない。エスケープシーケンスは、エスケープ文字を含めて2文字以上である。エスケープシーケンスには2つの機能がある。一つは、アルファベットでは表すことができない構文的な実体、例えば装置へのコマンドや特別なデータをコード化することである。もう一つは、文法上特別な意味を持つ文字を、その文字自体として表現することである。後者の場合、そのエスケープシーケンスは「ダイグラフ」や「トライグラフ」と呼ばれ、エスケープ文字と表示したい文字からなる。一般に、エスケープ文字は装置制御文字の特定のケースでなく、また、逆もそうである。もしエスケープ文字が非図形文字として定義されていたら、あるいは、出力装置(プリンタやテキスト端末)にとって特別な意味を持っていたら、その装置ではあらゆるエスケープ文字も装置を制御してしまう。しかし、プログラミングで使用されるエスケープ文字は図形文字(バックスラッシュ()など)であって制御文字でない。逆に、(全てではなく)ほとんどのアスキー制御文字は、単独で若干の制御機能があり、そのためエスケープ文字であるというわけではない。多くのプログラミング言語では、エスケープ文字も、制御文字を参照するエスケープシーケンスを作る。例えば、改行のエスケープシーケンスは である。ASCIIエスケープ文字は制御文字の一種で、十進数で27、十六進数で0x1Bに割り当てられている。キャレット記法では codice_1 と表され、Unicodeでは制御文字の図形表現として ␛ (U+241B)が定義されている。この文字は多くの出力装置で、「コントロールシーケンス」または「エスケープシーケンス」と呼ばれる文字列の開始文字として使われている。一般的に、それに続く文字が通常の文字ではなくコントロールシーケンスとして解釈されるということを装置に伝えるために、エスケープ文字が最初に送られる。エスケープ文字に続けて詳細な動作を指定する1文字以上の文字が送られた後、装置は通常の文字として解釈するモードに戻る。例えば、^[と表示可能文字からなる文字列 codice_2 は、DEC VT102端末においてカーソルを画面上の2行目10桁目へ移動させる。これらは後にANSIによって(X3.64)とされた。ヒューレット・パッカードの(PCL)も各コマンドがエスケープ文字から始まっていた。「エスケープ文字」という用語が最初に使われたのは、ボブ・バーマーによるIBMの技術書の中である。エスケープシーケンスの仕組みを発明し、ASCII文字コードセットにエスケープ文字を加えることを提案したのも彼である。Escキー(エスケープキー)は、PCのキーボード上にはあるが、ASCIIによる文字通信を主な目的としていないPDAなどの装置のキーボードには見られない。DEC シリーズは専用のEscキーを備えておらず、その代わりにキーパッドの上のキーの1つを使った。1970年代から80年代のユーザインターフェースでは、エスケープ文字のためにこのキーを使うことは稀でなかった。最新のデスクトップ・コンピュータにおいて、そのような使用はされなくなった。時々、EscキーはAltModeキーと同一視される。Escキーを使用しなくても、コントロールキーと'['を同時に押下することでもエスケープ文字のコードを発生させることができる。現代の多くのプログラミング言語では、ダブルクォート (codice_3) をの区切り文字として使用している。そのため、ダブルクォートそのものを文字列リテラルに含めることはそのままではできないので、バックスラッシュ(codice_4)(日本語環境では円記号(codice_5)として表示されるが、以下では単にバックスラッシュと書く)をエスケープ文字として使用する。文字列リテラルの中で codice_6 と書くと codice_3 と解釈される。また、十六進数のASCIIコードを使って codice_8 と書くこともできる。C言語、C++、Java、Rubyでは、上記の2つの方法とも使用できる。PostScriptやMicrosoftのRich Text Formatもバックスラッシュによるエスケープを使用する。quoted-printableでは等号( codice_9)をエスケープ文字として使用する。URLやURIでは、特別な意味を持つ文字や非ASCIIの文字を表すのにパーセント記号( codice_10)をエスケープ文字としたパーセントエンコーディングを使用する。アンパサンド (codice_11) は、SGMLやそれから派生したHTML・XMLなどにおいてエスケープ文字として扱われる。JavaScriptでは (バックスラッシュ)をエスケープ文字として使用する。v と はJSONでは使用できない。Point-to-Point Protocol(PPP)では、0x7Dのオクテット(十進数で125、八進数で175、ASCIIでは })をエスケープ文字として使用する。すぐ後に続くオクテットは0x20とのXORを取ってから上位のプロトコルへ送られる。これは、0x7D自体と、PPPでフレームの開始・終了を表わす0x7Eついて、上位のプロトコルからそれらのオクテットをPPPでカプセル化して送信するよう要請があったときに適用される。上位のプロトコルからの要請が 0x7D の場合は、送られるシーケンスは 0x7D 0x5D となり、 0x7E ならば 0x7D 0x5E となる。Bourne Shell (sh) では、アスタリスク (codice_12) と疑問符 (codice_13) がワイルドカードとして使用される。エスケープ文字を使わないと、codice_12はカレントディレクトリの全てのファイルのファイル名に展開される。"*"というファイル名を指したい場合は、バックスラッシュ(codice_4)を前につける。例えば、バックスラッシュをつけない場合とつけた場合で、以下のように動作が変わる。Windowsのコマンドプロンプトでは、特別な意味を持つ文字(codice_16)のためのエスケープ文字としてキャレット (codice_17) を使用する。DOSのコマンドラインインタプリタはWindowsのコマンドプロンプトと似たような文法を持つが、このエスケープ文字には対応していない。例えば、コマンドプロンプトでcodice_18と表示させようとして次のように実行すると、シンタックスエラーになる。そこで、キャレットでエスケープして次のようにする。エスケープ文字は、以下のものとは異なる。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。