HTMLエスケープ・アンエスケープ

HTMLの特殊文字(< > & " ')を文字参照に変換したり、元に戻したりします。コードをHTMLに表示するときに。

HTMLエスケープ・アンエスケープについて

HTMLでは、「<」「>」「&」などが特別な意味を持つため、これらの文字をそのまま表示したい場合は、「&lt;」「&gt;」「&amp;」のような文字参照に変換(エスケープ)する必要があります。このツールで、エスケープとその逆の変換ができます。

ブログやドキュメントに、HTMLのコードをそのまま表示したいときや、ユーザーの入力を安全に表示したいときに便利です。エスケープを怠ると、意図しない表示崩れや、セキュリティ上の問題(クロスサイトスクリプティング)の原因になります。

こんなときに使えます

  • HTMLのコードを、ブログ記事にそのまま掲載する
  • 文字参照(&lt; など)を、元の文字に戻す
  • ユーザー入力を表示する前の、エスケープの確認

使うときのポイント

  • プログラムで出力するときは、ライブラリのエスケープ機能を使う
  • 引用符("と')のエスケープも、属性値では重要

計算例

入力欄の初期値のまま計算すると、次の結果になります。条件は、処理がエスケープ(< → &lt;)、入力が<a href="x">Tom & Jerry's</a>です。数値を変えると、この結果もそれに合わせて変わります。

結果: &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#39;s&lt;/a&gt;

使い方

  1. 処理を選びます。
  2. テキストを入力すると、変換結果が表示されます。

計算方法・仕組み

& → &amp;、< → &lt;、> → &gt;、" → &quot;、' → &#39; のように変換します。

知っておきたい基礎知識

HTMLでは、<や>、&などの記号が、タグや特殊な文字の始まりを表すため、そのまま表示したい場合は、文字参照(&lt;・&gt;・&amp;など)に置き換える必要があります。この処理をHTMLエスケープといいます。コードの例をWebページに表示するときには、必ず、エスケープしなければなりません。

エスケープは、セキュリティの面でも重要です。利用者が入力した文字列をそのままHTMLに出力すると、悪意のあるスクリプトが実行される、クロスサイトスクリプティング(XSS)という脆弱性の原因になります。表示するデータは、エスケープしてから出力するのが、基本です。

間違えやすいポイント

  • エスケープは、出力する場所(HTML本文・属性・JavaScript内)によって、必要な処理が異なる
  • 二重にエスケープすると、「&amp;lt;」のように、表示が崩れる
  • エスケープ済みの文字列をさらに処理するときは、元に戻してから扱う

よくある質問

どの文字がエスケープの対象ですか?
&、<、>、二重引用符(")、単一引用符(')の5つが、基本です。
アンエスケープは、何のために使いますか?
エスケープされた文字列を元の文字に戻して、内容を読んだり、編集したりしたいときに使います。