deploy: 2026-04-16 19:31 JST · a254509

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

HTML特殊文字のエスケープ・アンエスケープをリアルタイムで変換

0 文字
0 文字

変換対応表

本ツールでエスケープ・アンエスケープされる文字の一覧

文字 Named Entity 数値参照(10進) 数値参照(16進) 説明
&&&&アンパサンド
<&lt;&#60;&#x3C;小なり(開始タグ)
>&gt;&#62;&#x3E;大なり(終了タグ)
"&quot;&#34;&#x22;ダブルクォート
'&#39;&#39;&#x27;シングルクォート
データはサーバーに送信されません。すべてブラウザ上で処理されます。

HTMLエスケープとは?

HTMLエスケープとは、HTMLで特別な意味を持つ文字を「文字参照」に変換する処理です。 HTMLでは <> がタグの開始・終了に、& が文字参照の開始に使われるため、 これらの文字をそのままテキストとして表示するには、対応する文字参照に変換する必要があります。

エスケープが必要な5つの特殊文字

HTMLで最低限エスケープが必要な特殊文字は以下の5つです。

  • &(アンパサンド) → &amp; — 文字参照の開始文字であるため、最も重要なエスケープ対象です
  • <(小なり) → &lt; — HTMLタグの開始として解釈されるのを防ぎます
  • >(大なり) → &gt; — HTMLタグの終了として解釈されるのを防ぎます
  • "(ダブルクォート) → &quot; — HTML属性値内で使用する場合に必要です
  • '(シングルクォート) → &#39; — HTML属性値内で使用する場合に必要です

XSS(クロスサイトスクリプティング)対策としてのエスケープ

HTMLエスケープは、XSS攻撃を防ぐ最も基本的な対策です。 ユーザーが入力したデータをWebページに表示する際、エスケープ処理を行わないと、 攻撃者が <script> タグなどの悪意あるHTMLコードを注入できてしまいます。

サーバーサイドのテンプレートエンジン(React、Vue、Jinja2、ERBなど)は通常、 自動でHTMLエスケープを行いますが、dangerouslySetInnerHTMLv-html など 「生のHTMLを挿入する」機能を使う場合は手動でのエスケープが必要です。

Named entities vs 数値参照

文字参照には「Named entities(名前付き実体参照)」と「数値参照」の2種類があります。 &amp; のような名前付きの方が読みやすく、&#38; のような数値参照はすべてのUnicode文字を表現できます。 ブラウザはどちらも同じように解釈するため、一般的なHTMLではNamed entitiesが推奨されます。

プログラミング言語別のエスケープ関数

  • JavaScript — 標準の関数はなし。自前で実装するか、ライブラリ(he、lodash.escapeなど)を使用
  • Pythonhtml.escape()(標準ライブラリ)
  • PHPhtmlspecialchars()
  • RubyCGI.escapeHTML() または ERB::Util.html_escape()
  • JavaStringEscapeUtils.escapeHtml4()(Apache Commons Text)
  • Gohtml.EscapeString()(標準ライブラリ)
共有する