Skip to content

無料HTMLエンティティエンコーダー — HTMLをエスケープ

HTMLエンティティをエンコードし、特殊文字(< > & " ')をオンラインでエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の出力に対応、アップロードは一切なし。

トラッキングなし ブラウザで動作 無料

テキストはブラウザ内でローカルにエンコードされ、アップロード・ログ記録・保存は一切されません。このデバイスに留まります。

オプション · 形式とエンコードのオプション
エンティティ形式
0 文字
エンコード済みHTML
0 文字
エンティティエンコードの仕様の正しさ(名前付き/10進/16進)、HTMLおよび属性の文脈での5つの特殊文字すべてのXSSセーフなエスケープ、互換性のある ' アポストロフィの慣習、入力のネットワークなし・保存なしのプライバシー、そしてアクセシビリティ(ラベル付きコントロール、エンコードとコピー時のライブリージョン通知)についてレビュー済みです。 — Go Tools Encoding Team · Jun 17, 2026

HTMLエンティティエンコードとは?

HTMLエンティティエンコード(HTMLエスケープとも呼ばれます)は、HTMLで特別な意味を持つ文字をエンティティと呼ばれる安全なテキスト表現に置き換え、ブラウザがそれをマークアップとして解釈するのではなくそのままのテキストとして表示するようにする処理です。最も重要な5文字は、HTMLが文書を構成するために使う文字です。タグを開閉する山かっこ < と >、エンティティを始めるアンパサンド &、そして属性値を区切る引用符 " と ' です。これらのいずれかが、実行されるのではなく表示されるべき内容に現れたときはエスケープしなければなりません。さもないとブラウザがページを読み違えます。良くてもテキストが誤って表示され、最悪の場合は攻撃者が <script> タグを忍び込ませます。

このツールが何をするかを正確にしておくと役立ちます。テキストをエンティティにエンコードします。文書を組み立てたり整形したりはしません。コードの文字列をページ上でプレーンテキストとして読みたい場合や、ユーザー提供の入力をHTMLに挿入して無害化する必要がある場合に、これが適切なツールです。一方、既存のマークアップをインデントして整えたい場合は、それはHTMLフォーマッターの仕事です。そしてエンティティを文字に戻すにはHTMLエンティティデコーダーを使います。

エンティティの書き方は3通りあり、互換性があります。名前付き参照は人にやさしいラベルを使い(< は <、© は ©)、10進の数値参照は文字のUnicodeコードポイントを10進で書き(< は <)、16進参照は同じコードポイントを16進で書いて(< は <)Unicode標準の U+XXXX 記法に一致します。名前付きエンティティが最も読みやすいですが、定義された名前を持つ文字にしか存在しません。数値エンティティはあらゆるコードポイントを表現でき、だからこそ安全なフォールバックになります。以下の表は、最もよく使うエンティティを一覧にしたものです。

| Character | Named | Decimal | Hex | |-----------|-------|---------|-----| | < | &lt; | &#60; | &#x3C; | | > | &gt; | &#62; | &#x3E; | | & | &amp; | &#38; | &#x26; | | " | &quot; | &#34; | &#x22; | | ' | &#x27; | &#39; | &#x27; | | (space) | &nbsp; | &#160; | &#xA0; | | © | &copy; | &#169; | &#xA9; | | ® | &reg; | &#174; | &#xAE; | | ™ | &trade; | &#8482; | &#x2122; | | € | &euro; | &#8364; | &#x20AC; | | £ | &pound; | &#163; | &#xA3; | | — | &mdash; | &#8212; | &#x2014; | | – | &ndash; | &#8211; | &#x2013; | | … | &hellip; | &#8230; | &#x2026; | | é | &eacute; | &#233; | &#xE9; |

アポストロフィは ' ではなく '(または ')と書かれる点に注意してください。名前付きの ' はHTML5とXMLで初めて標準化されたもので古いHTML4パーサーでは安全でないため、どこでも理解される数値形式が互換性のある選択です。このツールは広く使われている he ライブラリと同じ慣習に従っており、だからこそ ' の既定出力は ' です。

文字セットとエンティティの区別を押さえておく価値があります。これが「すべての非ASCIIをエンコード」オプションを説明するからです。文字セット(UTF-8など)は文字がどうバイトとして保存されるかを決め、エンティティはプレーンASCII文字 & # ; と英数字だけを使って文字を書く方法です。現代のUTF-8ページでは é、—、😀 は有効な生の文字でエンティティはまったく不要です。だからこそ既定モードはこれらをそのまま残します。生のUTF-8を扱えないシステムをテキストが通過しなければならない場合にだけエンティティに強制し、その場合はすべての非ASCIIコードポイントがASCIIセーフな数値または名前付き参照に書き換えられます。そしてこのすべてがブラウザ内で実行されるため、エスケープするマークアップ — 非公開テンプレートや未公開の下書きでさえ — がネットワークを越えることはありません。関連する変換には、JSONエスケープBase64エンコード/デコードのツールがあり、それぞれJavaScript文字列のエスケープとバイナリセーフな転送を扱います。

// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
//   <  →  &lt;     >  →  &gt;     &  →  &amp;     "  →  &quot;     '  →  &#x27;

// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
  return str
    .replace(/&/g, '&amp;')   // & first, so later entities are not double-escaped
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#x27;'); // numeric form — safe in HTML4, HTML5 and XML
}

const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text

// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
//   - React / Vue / Angular escape interpolated text by default
//   - Use textContent instead of innerHTML when you only need text:
//       el.textContent = userInput;  // the browser escapes for you
//   - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out

主な機能

予約された5文字を正しくエスケープ

< > & " ' は、堅牢なXSS防止ライブラリと同じように安全なエンティティに変換されます。アポストロフィにはHTML4で安全でない ' ではなく互換性のある ' を使う点も含みます。これはHTML要素および属性の文脈で信頼できない入力を無害化する、まさにそのセットです。

名前付き・10進・16進の出力

同じ文字を、読みやすい名前付きエンティティ(<、©)、10進の数値参照(<)、16進参照(<)として得られます。受け取り側のシステムが期待する形式を選べます。3つはすべて解析時に同一の文字に解決されます。

任意のすべての非ASCIIエンコードモード

既定では予約文字だけがエスケープされ、アクセントや絵文字は読みやすい生のUTF-8のまま保たれます。1つのチェックボックスで、0x7F を超えるすべてのコードポイントを、レガシー文字セットやUTF-8を壊すシステム向けのASCIIセーフなエンティティに変換します。

ライブで即時のエンコード

出力は入力に応じて更新されます。送信ボタンも往復のレイテンシもありません。大きなマークアップのブロックを貼り付けても、エスケープ結果がすぐに表示され、コピーする準備が整います。

エンティティのクイックリファレンスを内蔵

最もよく使うエンティティ — 予約の5つに加え ©、®、™、€、—、  など — の参照表が、名前付き・10進・16進の形でページ上にあるので、エンティティを他で調べる必要はありません。

ワンクリックでデコーダーに切り替え

Swap directionでHTMLエンティティデコーダーに直接ジャンプし、操作を逆転できます。エンコードとデコードは厳密な逆操作なので、テキストを損失なく往復できます。

100%プライベート、ブラウザ内のみ

すべてのエンコードはJavaScriptでデバイス上で行われます。ネットワークリクエストなし、ログなし、保存なしで、DevTools → ネットワークで検証できます。非公開のマークアップ、メールテンプレート、未公開の下書きがタブから離れることはありません。

15言語で利用可能

ラベル、説明、ガイダンスを含むインターフェース全体が15言語にローカライズされているため、チームがどこで働いていてもツールとそのエスケープに関する助言が明確です。

実践的な例

HTMLスニペットをエスケープする(既定の「特殊文字」モード)

<a href="x">Tom & Jerry's</a>
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;

既定の「特殊文字」モードでは、エンコーダーはHTMLマークアップで意味を持つ5つの文字だけを書き換えます。< は < に、> は > に、& は & に、" は " に、そして ' は ' になります。アポストロフィは名前付きの ' ではなく数値参照の ' として出力されます。' はHTML4で定義されておらず古いパーサーがつまずくことがある一方、16進形式はどこでも理解されるからです。エンコード後、ブラウザはこの文字列をそのままのテキストとして表示します。<a> タグはクリックされるのではなく表示されます。これはまさに、ページ内でマークアップを安全に見せる方法です。

既定モードでは非ASCII文字はそのまま保持される

Visit our café — it's 😀
Visit our café — it&#x27;s 😀

「特殊文字」モードはHTMLで予約された5つの文字だけに作用するため、アクセント付き文字(café)、emダッシュ(—)、絵文字(😀)はそのまま通過します。これにより出力は読みやすくバイト数も軽く保たれ、すでに <meta charset="utf-8"> を宣言しているUTF-8ページにはこれが望ましい状態です。エスケープされるのは "it's" のアポストロフィだけで、' になります。レガシー文字セットのためにすべての非ASCII文字をエンティティに変換する必要がある場合は「すべての非ASCIIをエンコード」にチェックを入れてください。以下の例を参照してください。

10進の数値エンティティ

<>&"'
&#60;&#62;&#38;&#34;&#39;

形式を10進に切り替えると、各特殊文字は10進の数値文字参照として書き出されます。< は <、> は >、& は &、" は "、そして ' は ' です。10進エンティティは最も広く互換性のある数値形式で、準拠するすべてのHTMLおよびXMLパーサーが理解します。そのため © のような名前付きエンティティが受け取り側でサポートされているか確信が持てないときに安全な選択肢になります。

16進の数値エンティティ

<>&"'
&#x3C;&#x3E;&#x26;&#x22;&#x27;

16進形式は各文字を16進の数値参照として書き出します。< は <、> は >、& は &、" は "、そして ' は ' です。16進と10進は交換可能で、どちらも同じUnicodeコードポイントを参照します。ただし16進はUnicode標準で見かける U+XXXX 記法と一対一で対応するため、特定のコードポイントを文書化したり考えたりする際に多くの開発者が好む形式です。

すべての非ASCII文字をエンコードする

café
caf&eacute;  (named)  ·  caf&#233;  (decimal)  ·  caf&#xE9;  (hex)

「すべての非ASCII文字をエンコード」にチェックを入れると、予約された5文字だけでなく 0x7F を超えるすべてのコードポイントがエンティティに変換されます。café の é は、選んだ形式に応じて名前付きの é、10進の é、16進の é になります。3つはすべて同じ文字 U+00E9 を参照します。このモードは、非Unicode文字セットで配信されるページや、生のUTF-8を壊してしまうシステムのためのもので、すべてを7ビットセーフなASCIIエンティティに強制することでテキストが転送中も無傷で残ることを保証します。

HTMLエンティティエンコーダーの使い方

  1. 1

    HTMLまたはテキストを貼り付ける

    エスケープしたいマークアップやプレーンテキストを入力ボックスに入れます。エンコード出力は入力に応じてライブで更新されます。送信ボタンはなく、どこにも送信されません。

  2. 2

    エンティティ形式を選ぶ

    名前付きは読みやすい既定です(<、&、©)。受け取り側のシステムが数値参照を好む場合や、名前付きエンティティのサポートを保証できない場合は10進(<)または16進(<)に切り替えます。

  3. 3

    必要に応じてすべての非ASCIIをエンコード

    現代のUTF-8ページではこれをオフのままにして、アクセントや絵文字を読みやすい生の文字として保ちます。テキストがレガシーな単一バイト文字セットを生き延びる必要があるときだけチェックを入れると、0x7F を超えるすべての文字がASCIIセーフなエンティティに変換されます。

  4. 4

    エンコード結果をコピーする

    Copyをクリックしてエスケープした文字列をクリップボードに入れ、テンプレート、ドキュメントページ、データベースフィールドに貼り付ける準備をします。Clearは次のスニペットのために両方のペインをリセットします。

  5. 5

    逆が必要? Swap direction

    エンティティを表す文字に戻したいときは、Swap directionでHTMLエンティティデコーダーに切り替えてください。

よくあるHTMLエンコードの間違い

アンパサンドを最後にエスケープして二重エスケープを起こした

& より先に < と > を置き換えると、作ったばかりのエンティティの & が再エスケープされ、< が &lt; になってそのままのテキストとして表示されます。必ず & を最初にエスケープしてください。

✗ 誤り
replace < and > first, then &  →  &lt;  becomes  &amp;lt;
✓ 正しい
escape & first, then the rest  →  &lt;  stays  &lt;

レガシーな文脈でアポストロフィに ' を使った

' はHTML4で未定義で、一部のメールクライアントはそのまま表示します。古いまたは混在する環境を対象にするときは、すべてのパーサーが理解する数値の ' または ' を使ってください。

✗ 誤り
It&apos;s here  →  may render as  It&apos;s here
✓ 正しい
It&#x27;s here  →  renders as  It's here

データを二重にエンコードした

すでにエスケープ済みのテキストをエンコーダーに再度通すと二重エンコードされます。& が &amp; になり、ユーザーには & ではなく & が見えます。出力時に、ちょうど1回だけエスケープしてください。

✗ 誤り
&amp;  encoded again  →  &amp;amp;  shows as  &amp;
✓ 正しい
&amp;  left as-is  →  renders as  &

URLやJavaScriptの文脈にHTMLエスケープを使った

HTMLエンティティは、URLやインラインスクリプトの中で値を安全にはしません。URLの中のスペースには %20 が、JavaScriptの中の文字列にはJS/JSONエスケープが必要です。値が落ち着く場所にエンコードを合わせてください。

✗ 誤り
href="/search?q=a&amp;b c"  →  the space still breaks the URL
✓ 正しい
href="/search?q=a%26b%20c"  →  URL-encoded, valid

UTF-8ページで非ASCIIを不必要にエンコードした

現代のUTF-8ページで café を café に強制すると、ソースが肥大化し、何の利点もなく読みづらくなります。レガシー文字セットが本当にエンティティを必要としない限り、非ASCIIは生のまま残してください。

✗ 誤り
caf&eacute; on a UTF-8 page  →  needless, harder to read
✓ 正しい
café on a UTF-8 page  →  valid and clean

属性値の中の引用符をエスケープし忘れた

エスケープしていない " を属性に挿入すると、値が脱出して新しい属性を注入できてしまいます。これはXSSの経路です。属性の文脈では必ず "(理想的には ' も)をエスケープしてください。このツールは既定でそうします。

✗ 誤り
title="He said "hi""  →  attribute breaks out
✓ 正しい
title="He said &quot;hi&quot;"  →  contained

このツールを使う人

ウェブページにコードサンプルを表示する
リテラルなHTMLを見せる必要があるチュートリアルやドキュメントを書いていますか? スニペットをエスケープして、<strong>bold</strong> がレンダリングされるのではなくテキストとして表示されるようにします。マークアップを貼り付け、エスケープした出力をコピーして <pre> や <code> ブロックに落とし込みます。
XSSに対してユーザー入力をサニタイズする
ユーザー提供の文字列をHTMLに挿入する前に予約された5文字をエスケープし、<script>…</script> のようなペイロードを無害なテキストにします。手作業でマークアップを組み立てるときの、クロスサイトスクリプティングに対する基礎的な防御です。
データベースフィールドやJSONにマークアップを保存する
HTML断片を、下流で解釈されることなくプレーンな文字列として保存する必要がありますか? 先にエンコードして、山かっことアンパサンドが保存と再表示を無傷で生き延びるようにし、取り出すときにデコードします。
メールテンプレートやCMSコンテンツを作成する
メールクライアントやコンテンツ管理システムは生の特殊文字に厳しいものです。予約セット — 任意ですべての非ASCIIも — をエスケープして、文字セットを共有しないクライアントでもテンプレートが一貫してレンダリングされるようにします。
レガシー文字セット向けにテキストを変換する
生のUTF-8を扱えないシステムを対象にしていますか? 「すべての非ASCIIをエンコード」をオンにして、すべてのアクセント付き文字、記号、絵文字をASCIIセーフなエンティティに書き換え、7ビットクリーンなパイプラインを通してもテキストが生き延びることを保証します。
XMLとSVGの属性値をエスケープする
XMLとインラインSVGはHTMLの予約文字を共有します。引用符と山かっこをエンコードして、埋め込みマークアップを含む文字列が文書構造を壊さずに属性値へ安全に収まるようにします。
エンティティをすばやく調べる
商標記号が ™ なのか ™ なのか忘れましたか? その文字を入力し、出力から名前付き・10進・16進のエンティティを読み取るか、ページを離れずに内蔵のクイックリファレンス表を参照してください。

エンコーダーの仕組み

特殊文字モード(既定)
既定ではHTMLで予約された5文字だけ — & < > " ' — が、安全な出力のためWHATWGのHTMLシリアライズ規則に従ってエスケープされます。& が最初に置き換えられるのは、他の文字のために生成したエンティティが二重エスケープされないようにするためです。非ASCIIを含む他のすべての文字はそのまま通過します。
アポストロフィは ' を使う
HTML4で未定義で一部のレガシーパーサーで安全でない名前付きの ' ではなく、シングルクォートは U+0027 を参照する数値の '(10進 ')として出力されます。これは he のような十分にテストされたライブラリの慣習に一致し、出力がHTML4・HTML5・XMLのいずれでも安全であることを保証します。
名前付き・10進・16進のエンコード
形式セレクターは各エスケープ文字の書き方を制御します。名前付きは定義済みのラベルがあればそれを使い(<、©)、10進はUnicodeコードポイントを10進で書き(<)、16進は16進で書きます(<)。数値形式は名前付き形式と同じコードポイントを参照し、解析時に交換可能です。
すべての非ASCIIエンコードオプション
有効にすると、0x7F を超えるコードポイントを持つすべての文字が選んだ形式のエンティティに変換されます。café は café(名前付き)、café(10進)、café(16進)になります。絵文字のようなastral文字はその完全なコードポイントでエンコードされます(😀 → 😀)。これはレガシー転送向けに7ビットクリーンなASCII出力を生成します。
文字セットとエンティティの違い
文字セットはテキストがどうバイトとして保存されるかを定め、エンティティはASCIIだけを使って文字を綴る方法です。UTF-8ページでは非ASCII文字にエンティティは不要で、だからこそ既定はこれらを生のまま残します。すべてをエンコードする必要があるのは、出力が非Unicode文字セットやUTF-8に敵対するシステムを通過しなければならないときだけです。
ブラウザローカル、ネットワークゼロ
エンコードはJavaScriptのメインスレッドで同期的に実行されます。API呼び出しも、サーバーへのワーカーの往復も、永続化もありません。入力はページから離れることがなく、入力中に空のネットワークパネルを見ることで確認できます。

HTMLエスケープのベストプラクティス

正しい文脈で、出力時にエスケープする
データを受け取ったときではなく、HTMLに挿入する瞬間にエンコードし、エンコードを文脈に合わせます。HTMLエンティティエンコードはHTML要素および属性の内容向けです。URLの中ではURLエンコードを、スクリプトブロックの中ではJavaScript/JSONエスケープを使います。間違った文脈でエスケープすると穴が残ります。
信頼できない入力は必ずエスケープする
ユーザー、アップロード、外部APIに由来するあらゆる文字列は、マークアップに入る前にエスケープしなければなりません。これが中核のXSS防御です。<script>alert(1)</script> のようなペイロードは、山かっこがエンティティになれば無害なテキストになります。
可能なら組み込みのエスケープを優先する
React、Vue、そしてほとんどのサーバーテンプレートエンジンは補間されたテキストを自動的にエスケープします。element.textContent を設定すればこれもエスケープしてくれます。このツールは1回限りの変換や出力の理解のために使い、アプリケーションコードでは自前で組むのではなくフレームワークの自動エスケープに頼ってください。
UTF-8ページでは非ASCIIを生のまま残す
ページが <meta charset="utf-8"> を宣言しているなら、アクセントや絵文字をエンティティにエンコードしないでください。生のUTF-8は短く、読みやすく、同じように正しいものです。「すべての非ASCIIをエンコード」は、実際に必要となる本物のレガシー文字セットのケースのために取っておきます。
混在する文脈では数値のアポストロフィを使う
出力が古いパーサー、XMLプロセッサ、メールクライアントで消費される可能性があるときは、シングルクォートに名前付きの ' より数値の ' を優先します。数値形式はどこでも理解されますが、名前付き形式はそうではなく、レンダリングされたテキストに紛れ込んだそのままの「'」はよくある、避けられるバグです。

よくある質問

エンコードするとき、テキストはサーバーに送信されますか?
いいえ。すべての文字はJavaScriptによって完全にブラウザ内でエンコードされます。DevTools → ネットワークを開けば、入力や貼り付けの際にリクエストが一切発生しないことが確認できます。何もアップロードされず、何もログに記録されず、何もディスクに書き込まれません。このプライバシーが重要なのは、人々がエスケープするマークアップがしばしば機密だからです。非公開CMSのスニペット、社内メールのテンプレート、カスタマーサポートの返信、未公開のブログ下書きなどです。サーバー側のエンコーダーでは、これらすべてがあなたの管理外のマシンへネットワークを越えて送られます。ここではテキストがタブから離れることはありません。これこそが、何でもコピーを保持しうるウェブサイトに貼り付けるのではなく、HTMLをクライアント側でエスケープすべき理由のすべてです。
HTMLをエスケープするとはどういう意味で、なぜそうするのですか?
HTMLのエスケープとは、ブラウザがマークアップとして解釈してしまう文字をエンティティ相当に置き換え、そのままのテキストとして表示させることです。典型例はページ上でコードを見せる場合です。訪問者に「bold」が太字でレンダリングされて見えるのではなく、<strong>bold</strong> という文字列を読んでほしいなら、山かっこをエスケープして <strong>bold</strong> にします。もう一つの、より重要なケースはセキュリティです。信頼できないユーザー入力をページに挿入する際、予約された5文字(< > & " ')をエスケープすると、その入力が文脈から脱出して <script> タグを注入するのを防げます。これがクロスサイトスクリプティング(XSS)に対する中核的な防御です。ユーザー由来でHTMLに入るテキストは、まずエスケープすべきです。
名前付き・10進・16進のエンティティの違いは何ですか?
3つはすべて同じ文字を生成し、参照の書き方が違うだけです。名前付きエンティティは人が読めるラベルを使い、< なら <、& なら &、© なら © のように読みやすい反面、定義された名前を持つ文字にしか使えません。10進の数値エンティティはUnicodeコードポイントを10進で書き、< は <、é は é のようになります。16進エンティティは同じコードポイントを16進で書き、< は <、é は é のように、Unicode標準の U+XXXX 記法を反映します。名前付きエンティティが最も読みやすく、一般的な予約文字には適した既定です。数値エンティティ(10進または16進)は名前のないものを含むあらゆるコードポイントをエンコードできるため、特定の名前付きエンティティが受け取り側でサポートされている保証がないときの安全な選択肢になります。
なぜアポストロフィは ' ではなく ' としてエンコードされるのですか?
' がどこでも安全とは限らないからです。名前付きエンティティ ' はHTML5とXMLで初めて導入されたもので、HTML4では定義されていません。そのため一部の古いパーサーやメールクライアントは、アポストロフィの代わりにそのままの文字列「'」として表示してしまいます。数値参照 '(あるいは10進の双子 ')は同じ文字 U+0027 にマップされ、これまで書かれたすべての準拠パーサーが理解します。十分にテストされた he のようなライブラリの挙動に従い、このツールはアポストロフィに普遍的に互換のある ' を出力するため、HTML・XML・属性のどの文脈にも驚きなく落とし込めます。
é、— や 😀 のような非ASCII文字はエンコードする必要がありますか?
たいていは不要です。ページが <meta charset="utf-8"> を宣言していれば(現代のほぼすべてのページがそうです)、アクセント付き文字、emダッシュ、絵文字は生のUTF-8として完全に有効で、まったくエンコードする必要はありません。だからこそ既定の「特殊文字」モードはこれらをそのまま残し、出力を短く読みやすく保ちます。非ASCII文字をエンコードする必要があるのは、テキストがレガシーな単一バイト文字セットで配信・保存される場合や、生のUTF-8を壊すシステムを通過する場合だけです。そうしたケースでは「すべての非ASCII文字をエンコード」にチェックを入れれば、0x7F を超えるすべてのコードポイントがASCIIセーフなエンティティに変換されます。迷ったら既定のままにし、文字セット宣言が正しいことを確認してください。
HTMLをエスケープすればXSS攻撃から守られますか?
エスケープはXSS防御の土台ですが、文脈に依存するので、正直な答えは「正しく適用すれば、はい」です。信頼できない入力をHTML要素の内容に置く前に予約された5文字をエンコードすれば、攻撃者がタグやスクリプトを注入するのを確実に防げます。<script>alert(1)</script> のようなペイロードは無害なテキストになります。注意点は、HTMLにはそれぞれ固有のエスケープ規則を持つ複数の文脈があることです。属性値の中では引用符をエスケープする必要があり(このツールはそうします)、<script> ブロックやインラインのイベントハンドラの中ではJavaScriptエスケープが、URLの中ではURLエンコードが必要です。HTMLおよび属性の文脈にはHTMLエンティティエンコードを使い、URLにはURLエンコーダー/デコーダーを、JavaScriptやJSONに文字列を埋め込むにはJSONエスケープツールを使ってください。データが落ち着く文脈で、出力時にエンコードしましょう。
これを逆に戻すには? エンティティを文字に戻すには?
対になるHTMLエンティティデコーダーを使ってください。<div> & © のようにエンティティだらけの文字列を受け取り、本来の文字 <div> & © に戻します。名前付きエンティティ、10進参照、16進参照、さらにはセミコロンを欠いた &copy のようなレガシーの未終端エンティティまで扱います。エンコードとデコードは予約文字に対して厳密な逆操作なので、両ツールでテキストを往復させても損失なく戻せます。ページが < ではなく &lt; とそのまま表示される理由をデバッグしているなら、デコーダーがエンティティが実際に何に解決されるかを見る最速の方法です。
エンコードすると見えるテキストが変わったりレイアウトが崩れたりしますか?
いいえ。それこそが要点です。エンティティは文字の別表記にすぎません。ブラウザが < を解析すると単一の < グリフをレンダリングし、生の文字と同一です。したがって正しくエスケープされたページは、生の文字を使った場合と訪問者にはまったく同じに見えます。唯一の違いは、ブラウザがエスケープ版をマークアップではなくテキストとして扱う点です。エスケープが変えるのはソース文字列の長さと見た目だけなので、必要なものだけをエスケープします。乱れたマークアップを整形してインデントすることが目的なら、それは別の仕事です。代わりにHTMLフォーマッターを使ってください。

Base64エンコーダー&デコーダー

エンコーディングとフォーマット

Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。

Base64 画像変換ツール

エンコーディングとフォーマット

Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。

CSV to JSON 変換ツール

エンコーディングとフォーマット

CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。

.env から JSON への変換ツール

エンコーディングとフォーマット

.env ファイルを貼り付けるだけで即座に JSON に変換。データベースのパスワードや API キー、トークンはブラウザから一切出ません。100% プライベート、アップロード不要、無料の dotenv パーサー。

無料HTMLエンティティデコーダー — HTMLをアンエスケープ

エンコーディングとフォーマット

HTMLエンティティをデコードし、HTMLをオンラインでアンエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の参照を文字に戻します。アップロードは一切なし。

HTML Markdown 変換ツール

エンコーディングとフォーマット

HTML をブラウザ内できれいな Markdown に変換 — GFM のテーブル、タスクリスト、リンク対応。ATX/Setext 見出しとインラインまたは参照リンクを選択。Web コンテンツの移行や LLM への投入に最適。完全プライベートでアップロード不要。