開発者向け
HTMLエスケープ・アンエスケープツール
HTMLの特殊文字(< > & " ')をエスケープ・アンエスケープ。XSS対策やHTMLソースの安全な表示に。数値参照にも対応。
登録不要
HTMLエスケープ・アンエスケープツールについて
HTMLエスケープとは
HTMLエスケープとは、HTMLで特別な意味を持つ文字をHTMLエンティティ(文字参照)に変換する処理です。
たとえば < はHTMLタグの開始として解釈されるため、テキストとして表示するには < に変換する必要があります。エスケープしないと、ブラウザがHTMLタグとして解釈し、レイアウト崩れやセキュリティ上の問題(XSS)が発生する可能性があります。
逆に、エスケープ済みの文字列を元の文字に戻す処理をアンエスケープ(デコード)と呼びます。
エスケープが必要な5つの特殊文字
HTMLで必ずエスケープすべき特殊文字は以下の5つです。
&(アンパサンド) →&— エンティティの開始文字のため<(小なり) →<— HTMLタグの開始として解釈されるため>(大なり) →>— HTMLタグの終了として解釈されるため"(ダブルクォート) →"— 属性値の区切りとして解釈されるため'(シングルクォート) →'— 属性値の区切りとして解釈されるため
特に & と < は最も重要で、これらをエスケープしないとHTMLの構文が壊れます。
HTMLエスケープの主な用途
- Webアプリケーション開発:ユーザー入力をHTMLに埋め込む際のXSS対策
- ブログ・CMS:HTMLコードをテキストとして表示する場合(コード例の掲載など)
- メールテンプレート:HTML形式のメールで特殊文字を正しく表示
- RSS/XMLフィード:コンテンツ内のHTMLタグ文字をエスケープして構文エラーを防止
- テンプレートエンジン:サーバーサイドでの動的HTML生成時の安全なレンダリング
よくある質問
- Q. 入力データはサーバーに送信されますか?
- いいえ。すべての変換処理はブラウザ内のJavaScriptで完結しており、データがサーバーに送信されることはありません。
- Q. HTMLエスケープはXSS対策になりますか?
- HTMLエスケープはXSS(クロスサイトスクリプティング)対策の基本です。ユーザー入力を & < > " ' のエスケープなしにHTMLへ埋め込むと、悪意のあるスクリプトが実行される危険があります。ただし、エスケープだけでは不十分な場合もあり、CSP(Content Security Policy)などと組み合わせることが推奨されます。
- Q. とは何ですか?
- は「ノーブレークスペース(Non-Breaking Space)」を表すHTMLエンティティです。通常のスペースと異なり、この位置では改行が行われません。また、連続する空白が1つに縮約されないため、複数のスペースを表示したい場合にも使用されます。
- Q. 数値文字参照(< や <)とは何ですか?
- 数値文字参照は、文字のUnicodeコードポイントを10進数(<)または16進数(<)で指定する方法です。名前付きエンティティ(<)と同じ結果になりますが、すべてのUnicode文字を表現できるため、名前付きエンティティが存在しない文字にも使用できます。
- Q. エスケープとエンコードの違いは何ですか?
- HTMLエスケープはHTML文書内で特殊文字を安全に表示するための変換です。一方、URLエンコードはURLに使用できない文字を%xx形式に変換する処理です。目的と対象文字が異なるため、用途に応じて使い分ける必要があります。
出典・参考文献
関連記事
文字コード戦争 — Shift_JIS vs EUC-JP vs UTF-8、日本語Webが経験した混沌
なぜ日本語には3つも文字コードがあったのか。Shift_JISの「5C問題」、EUC-JPのUnix支配、ISO-2022-JPのメール世界、機種依存文字の闇、そして絵文字がUnicodeに統合されるまでの30年史を技術的背景から解説します。
UTF-8 の誕生 — Rob Pike と Ken Thompson がダイナーのランチョンマットに書いた設計
1992 年 9 月、ニュージャージーのダイナーで Rob Pike と Ken Thompson がランチョンマットの裏に書いた符号化方式が、現在 Web の 98% を占める UTF-8 になりました。ASCII 互換・自己同期・バイト順非依存という設計判断の背景を、Pike 本人の証言メール (2003) と RFC 3629 を一次資料に辿ります。
このツールを評価
—(0件)


