「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

エスケープ処理

pointこの用語のポイント

point特別な意味を持つ文字の「特別」を無効化するよ

pointその文字の前に「特別な意味を無効化する文字」を置いたり、他の文字の組み合わせに置き換えたりするよ

pointプログラミングの話とかで出てくるよ

スポンサーリンク

簡単に書くよ

エスケープ処理(読:エスケープショリ 英:escape processing)とは

「これが書いてあったら、こうしてね!」な意味を持つ特別な文字を、別の文字の組み合わせに置き換えたりして、普通の文字として認識させること
です。


image piyo

詳しく書くよ

サクっと一言で説明すると

特別な意味を持つ文字の「特別」を無効化する処理

が「エスケープ処理」です。

エスケープ処理

例えば、そうですね。

とあるプログラミング言語「ピヨピヨ言語」で書かれた以下の処理が あったとしましょう。

print "piyota";

ピヨピヨ言語において、これは画面に「piyota」と表示する処理です。
「print」の部分が「『"』で囲まれた部分の文字を画面に表示してよ」な命令になっています。

エスケープ処理2

さて、ここで問題です。
画面に「piyo"ta」と表示したい場合は、どのように書けば良いでしょうか?

そうですね。

print "piyo"ta";

と書けば良いのです。

……と思ったら、エラーになりました。
理由は、書いた処理におかしな部分があったからです。

エスケープ処理3

「print」は「『"』で囲まれた部分の文字を画面に表示してよ」な命令です。

print "piyo"ta";

において「"」で囲まれた部分は「"piyo"」の部分です。
「ta"」が余計ですよね。
そのようにパソコンさんは解釈してしまいました。

エスケープ処理4

これは困りましたね。
ピヨ太君は「piyo"ta」を「"」で囲まれた部分として指定したつもりでした。
でもパソコンさんは「piyo」を「"」で囲まれた部分として認識してしまいました。

エスケープ処理5

(他にも使いどころはありますが)そんな困った状況を解決するときに出てくるのがエスケープ処理です。

ピヨピヨ言語には「『\』という文字の次に書いた文字は特別な意味が無効化されるよ」というルールが ありました。
これを使います。

ピヨ太君は

print "piyo"ta";



print "piyo\"ta";

に書き換えました。
普通の文字として認識してほしい「"」の前に、次に書いた文字の特別な意味を無効化する「\」を付けたのです。

エスケープ処理6

これでパソコンさんは「piyo」の後ろに付いている「"」を特別な意味を持たない普通の文字「"」として認識するようになりました。
「『"』で囲まれた部分の文字を画面に表示してよ」な命令である「print」における「ここからここまで表示するのね」の範囲の区切りと認識しなくなったのです。

エスケープ処理7

これでパソコンさんは画面に「piyo"ta」と表示してくれるようになりました。
めでたし、めでたし。

これがエスケープ処理の一例です。
特別な意味を持つ「"」の前に特別な意味を無効化する文字「\」を置いて「\"」にすることで「"」を表示範囲の区切りではなく文字の「"」と認識させました。

エスケープ処理8

もう一例、見てみましょう。
今度はホームページの話です。

ホームページのファイルの書き方ルールHTMLにおいて

「<」と「>」で囲まれた部分は特別な意味があるよ

というルールがあります。

……と言うと、ちょっと語弊のある言い方になってしまいますかね。
とりあえず

HTMLにおいて「<」と「>」は特別な文字

というのを頭に置いておいてください。

例えばホームページのファイルに

<hr>

と書くと、実際の画面上には




と表示されます。
「<」と「>」で囲んで「<hr>」と書くと「ここに横線を引いてよ!」な指定になるのです。

エスケープ処理9

それでは、画面上に

<hr>

と表示したい場合は、どうすれば良いのでしょうか?
そのまま「<hr>」と書くと横線になってしまいます。

ここで登場するのがエスケープ処理です。

HTMLには

・「&lt;」と書くと「<」と表示される
・「&gt;」と書くと「>」と表示される


というルールがあります。

エスケープ処理10

※実際には、HTMLのルールというより、ホームページを見るときに使うソフトWebブラウザ)が書かれた内容をどのように解釈するかのルールでしょうけどね。そこら辺を気にするとややこしいことになりそうなので、今回は気にしないことにします。

そこで、ホームページのファイルには

&lt;hr&gt;

と書いてあげるのです。
そうすると画面上には

<hr>

と表示されます。

エスケープ処理11

これで画面に横線ではなく「<hr>」と表示できました。
めでたし、めでたし。

これもエスケープ処理です。
特別な意味を持つ「<」「>」を「&lt;」「&gt;」に置き換えることで「<」「>」をHTMLにおける特別な意味を持つ文字ではなく、文字の「<」「>」と認識させました。

エスケープ処理12

他にも、いろいろなやり方や使いどころがありますけどね。
基本は

その文字の持つ特別な意味を無効化する

です。
それさえ覚えておけば、そんなに困らないと思います。


image piyo2

一言でまとめるよ

まぁ「エスケープ処理」って単語が出てきたら「特別な意味を持つ文字の『特別』を無効化する処理なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像033
書籍画像006

おまけ

■訳してみるよ

「escape(エスケープ)」の意味は「逃げる」とか「逃れる」とか「脱出する」とかです。
「処理」は日本語ですね。
何となく くっつけると

(特別な意味から)逃れる処理

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
優れたエンジニアがコミュニティの中でしていること
ウォーターサーバーのキャッチコピーを100本考える方法