エスケープ文字(エスケープシーケンス、Escape Character)

エスケープ文字(エスケープシーケンス、Escape Character) E
PR
PR

エスケープ文字(エスケープシーケンス、Escape Character)とは、プログラムの中で特別な意味を持つ文字を、そのままの文字として扱うために使う特殊な記号のことです。「\(バックスラッシュ)」などの記号に別の文字を組み合わせることで、通常は表現しにくい文字や動作を表現できるようになります。

イメージとしては、エスケープ文字は「これはジョークです」と前置きしてから話すことのようなものです。特別な意味に受け取られてしまう言葉の前に断りを入れることで、本来の意味通りに伝えられます。

エスケープ文字とは

プログラミング言語では、「”(ダブルクォート)」のように特定の役割を持つ記号が数多く存在します。しかし、その記号自体を文字として表示したい場面もあり、その際に使われるのがエスケープ文字です。特殊な記号の前に「\」を置くことで、「これは特別な意味ではなく、ただの文字です」と伝える仕組みになっています。

エスケープ文字(エスケープシーケンス、Escape Character)

なぜ必要なのか

たとえば、文章を「”(ダブルクォート)」で囲んで表す言語で、文章の中に「”」という文字そのものを含めたい場合、そのままではどこまでが文章の範囲なのかをプログラムが正しく判断できなくなってしまいます。エスケープ文字を使うことで、こうした記号の衝突を防げます。

代表的なエスケープシーケンス

改行を表す「\n」、タブ(一定の空白)を表す「\t」、バックスラッシュ自体を表す「\\」など、あらかじめ決まった意味を持つ組み合わせを「エスケープシーケンス」と呼びます。多くのプログラミング言語で、共通してこれらの表記が使われています。

改行や特殊文字の表現

画面上に見えないキーボードの操作(改行やタブなど)は、そのままでは文字として書き表せません。「\n」と書くだけで、プログラムの中に改行という動作を文字として埋め込めることが、エスケープ文字の代表的な使い道の1つです。

Webページとエスケープ処理

Webページを作る際にも、HTMLで特別な意味を持つ「<(小なり)」や「>(大なり)」などの記号を、そのまま画面に表示したい場合にはエスケープ処理が必要です。この処理を怠ると、意図しない形でページのレイアウトが崩れてしまうことがあります。

セキュリティとの関係

エスケープ処理は、XSS(クロスサイトスクリプティング)のような攻撃を防ぐうえでも重要な役割を果たします。利用者が入力した文字列をそのまま画面に表示すると、悪意のあるプログラムが実行されてしまう危険があるため、特別な意味を持つ記号を無害な表示に変換する処理が欠かせません。

言語ごとの違い

エスケープ文字の基本的な考え方は共通していますが、使われる記号や書き方は言語によって細かく異なることがあります。多くの言語では「\」が使われますが、一部の言語では別の記号や書き方が採用されている場合もあります。

エスケープ文字を使う場面

プログラムのコード内で文字列を扱うときはもちろん、正規表現の中で特別な意味を持つ記号をそのまま検索したいとき、Webページに特殊記号を安全に表示したいときなど、文字と記号が衝突しうるあらゆる場面でエスケープ文字は活用されています。

記法 意味
\n 改行
\t タブ(一定の空白)
\\ バックスラッシュそのもの
\” ダブルクォートそのもの

あわせて知っておきたい用語

  • 正規表現:
    文字列のパターンを表現するための記号のルール
  • XSS:
    悪意のあるプログラムをWebページに埋め込む攻撃手法
  • 文字列:
    文字が連なったデータのこと
  • HTML:
    Webページの構造を記述するためのマークアップ言語

コメント

タイトルとURLをコピーしました