HTML 実体参照のエンコードとデコード
エンコード・暗号処理はすべてブラウザ内で完結します。データは送信されません
< > & " とシングルクォートを実体参照に変換し、逆に実体参照を文字へ戻します。エンコードで触るのはこの 5 文字だけです —— HTML で本当に構文上の意味を持つ文字であり、タグがどこから始まり、属性値がどこで終わるかを決めます。それ以外の文字はリテラルのままで完全に合法で、まとめて実体参照にすると出力が読めなくなり、diff も取れなくなります。デコードは名前付き実体参照(Web ページでよく現れる 200 余りを収録)、10進数の 中 と16進数の 中 の両方に対応し、しかも1回だけ実行します:&lt; は < になり、< までは戻りません —— 繰り返しのデコードは XSS が入り込む典型的な経路だからです。知らない実体参照はそのまま残し、エラーも出さず消しもしません。
機能
- 双方向変換:テキスト ⇄ HTML 実体参照
- エンコードは構文上の意味を持つ < > & " とシングルクォートの 5 文字だけ。残りはそのまま
- 任意で非 ASCII 文字を数値実体参照に変換:日本語 → 日本語、emoji → 😀
- デコードは名前付き実体参照に対応(nbsp、copy、mdash、矢印、数学記号、ギリシャ文字など 200 余り)
- デコードは 中 の10進数と 中 の16進数の両方に対応
- デコードは1回だけ:&lt; は < ではなく < になります
- 知らない実体参照や範囲外のコードポイントはそのまま保持し、エラーも出さず捨てもしません
使い方
- 方向を選びます:エンコードかデコード
- 日本語もまとめて数値実体参照にする場合は「非 ASCII 文字もエンコードする」にチェックを入れます
- 内容を入力欄に貼り付けると、結果がリアルタイムで表示されます
- 「コピー」で結果を取り出せます
よくある質問
- エスケープするのが 5 文字だけなのはなぜですか?
- HTML で構文上の意味を持つのは < > & " とシングルクォートだけだからです:タグがどこから始まり、属性値がどこで終わり、実体参照がどこから始まるかを決めます。それ以外の文字(日本語や中国語、emoji を含む)はリテラルのままで合法で、すべて実体参照にするとコードが読めなくなるだけです。全体を ASCII にしたい場合は「非 ASCII 文字もエンコードする」にチェックを入れてください。
- シングルクォートが ' ではなく ' になるのはなぜですか?
- ' は XML と HTML5 で追加された実体参照で、古いパーサーは認識しません。数値実体参照の ' はどのパーサーでもシングルクォートと等価なので、互換性の面で安定しています。
- &lt; が山括弧1つではなく < に戻るのはなぜですか?
- このツールはデコードを1回だけ行います。それが安全上正しい挙動です。繰り返しデコードすると &lt;script&gt; のような入力が、1回だけのフィルタをすり抜けてしまいます —— これが XSS の最も典型的な経路です。入れ子のデコードが必要な場合は、意図して明示的にもう一度かけてください。
- 一部の実体参照がデコードされないのはなぜですか?
- このツールが収録しているのは Web ページでよく現れる 200 余りで、HTML5 の完全な 2200 余りは収録していません(ページサイズが十倍になります)。未収録の &foo; はそのまま残ります —— 処理されなかった実体参照が一目で分かり、エラーを受け取ったり黙って消されたりすることはありません。
関連ツール
Unicode エスケープ
エンコード・暗号日本語や中国語、emoji などの非 ASCII 文字を \uXXXX・\xXX・&#xXXXX; のエスケープ表記に変換し、復元もできます。すべてブラウザ内で処理し、送信しません。
URL エンコード
エンコード・暗号日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。
HTML 整形
整形HTML をオンラインで整形・圧縮:タグの階層ごとにインデントし、テキストとインライン要素は同じ行のまま。script と pre の中身はそのまま保持します。
Base64 変換
エンコード・暗号テキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
JWT デコード
エンコード・暗号JWT を header・payload・signature に分け、iat や exp を読める日時に変換します。署名は検証せず、その旨を出力に明記します。すべてブラウザ内で処理します。
ハッシュ計算
エンコード・暗号MD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算します。日本語や中国語も UTF-8 バイトで計算し openssl や sha256sum と一致。ブラウザ内で処理します。