HTML エンコーダー / デコーダー
HTML 特殊文字をエスケープ、またはエンティティをデコード。ユーザー入力の安全な埋め込みや、エスケープ済みマークアップのデバッグに便利。
上に入力すると結果が表示されます。
用途
HTML には構造的な意味を持つ 5 文字 — &、<、>、"、' — が予約されています。これらをページにコンテンツとして表示するには、ブラウザがマークアップとして解釈しないように HTML エンティティへエスケープする必要があります。本ツールは双方向に対応しており、生テキストを安全なエンティティへエンコード、または取得した HTML をプレーンテキストへデコードできます。
使うべきタイミング
- 信頼できないユーザー入力を HTML に埋め込むとき — XSS 対策のため、まずエンコードしてください。
- スクレイピングやコピーで取得した、エンティティ(
&、'、“)混じりのマークアップをデコードしたいとき。 - 誤って二重エスケープされたテンプレートを元に戻したいとき。
- JSDoc、CDATA を使わない XML、Markdown のコードフェンスなど、リテラルな山括弧が必要な場面のスニペット作成。
よくある注意点
- エンコードはサニタイズではありません。 エンコードは表示用に安全化するだけです。タグを除去したいなら、別途 HTML サニタイザーが必要です。
- 属性とボディ。 どちらも同じ 5 文字をエスケープしますが、
onclickのような JavaScript イベントハンドラは追加のエスケープが必要です(本ツールは行いません。信頼できないデータを属性に入れないでください)。 - デコーダは寛容です。 名前付きエンティティ(
“)、10 進(")、16 進(")はすべてブラウザのパーサーで復号されるため、本物のブラウザが受け入れるものはすべて受け入れます。 - 二重エンコードに注意。 既にエンコード済みの値を再度エンコードすると
&amp;になります。入力にエンティティが見える場合はまずデコードしてください。