HTML エンティティ変換
特殊文字のエスケープと復元
ブラウザ内で処理
入力
オプション
結果
結果
まだ入力されていません
テキストを貼り付けると、ここに変換結果が表示されます。
よく使うエンティティ
- &
& - <
< - >
> - "
" - '
' - (スペース)
- ©
© - ®
® - ™
™ - €
€ - ·
· - …
… - —
— - →
→ - ★
★
UTF-8 のページでは、& < > をエスケープすれば十分です。
山括弧やアンパサンドは HTML では構造であって文字ではありません。エスケープせずにページに入れると、レイアウトが壊れるかインジェクションの穴が開きます。エンティティに変換すれば、その文字そのものとして表示されます。
使い方
- 1 エンコードかデコードを選びます。
- 2 テキストか HTML を貼り付けます。
- 3 出力先のページに文字コードの宣言がない場合は、全エスケープのオプションをオンにします。
- 4 結果をコピーします。
よくある質問
実際にエスケープが必要な文字はどれですか。
テキスト部分では & と <。属性値ではさらに " と '。> は必須ではなく慣習です。これらをエスケープすればインジェクションのリスクは押さえられます。
日本語やアクセント付き文字もエスケープすべきですか。
現代の UTF-8 のページでは不要です。そのままで動作し、ソースも読みやすいままです。出力先の文字コードが不明だったりレガシーだったりする場合にのみ、すべてエスケープしてください。
エスケープすれば XSS を防げますか。
防御の中核ではありますが、文脈が重要です。ページ内のテキストには HTML エスケープが必要ですが、script タグ内や URL 属性内の値には別のエスケープが必要です。文脈を取り違えたエスケープでは穴が残ります。