HTMLエスケープとは
HTMLで特別な意味を持つ文字を、文字として安全に表示できるHTML文字参照へ置き換える処理です。標準設定では&・<・>・ダブルクォート・シングルクォートの5文字を変換します。
HTMLアンエスケープとは
<を<へ戻すように、HTML文字参照を文字へデコードする処理です。このツールは1回だけデコードし、結果をHTMLとして描画せずtextareaの文字列として表示します。
HTMLエンティティ・文字参照とは
HTML文字参照は、特殊文字やUnicode文字をアンパサンドから始まる表記で記述する仕組みです。一般にHTMLエンティティとも呼ばれます。名前付き参照と数値文字参照があります。
< > &とは
<は小なり記号、>は大なり記号、&はアンパサンドを表す名前付き文字参照です。
HTMLコードを文字として表示する方法
たとえば入力<div class="test">A & B</div>をエスケープすると、<div class="test">A & B</div>になります。タグとして実行せず、コード例として表示できます。
数値文字参照とは
Unicodeコードポイントを10進または16進で示す表記です。<と<はいずれも小なり記号を表します。本ツールの数値出力形式は基本5文字だけを変換し、日本語や絵文字はそのまま保持します。
HTMLエスケープとURLエンコードの違い
HTMLでは小なり記号を<、URLのpercent encodingでは%3Cと表します。用途は異なります。URLにはURLエンコード・デコードをご利用ください。
XSS対策とHTMLエスケープ
HTMLエスケープだけで全種類のXSSを防げるわけではありません。HTML本文、HTML属性、JavaScript、CSS、URLのどこへ値を挿入するかによって必要なエンコードや検証が異なります。実際のアプリでは利用文脈に合った安全な出力処理と、必要に応じたHTMLサニタイズを行ってください。
変換例
エスケープ<div class="test">A & B</div>
↓<div class="test">A & B</div>
アンエスケープ<p>こんにちは</p>
↓<p>こんにちは</p>(文字列として表示)
10進数値参照<div>
↓<div>
16進数値参照<div>
↓<div>
よくある質問
HTMLエスケープとは何ですか?
HTMLで特別な意味を持つ文字を、HTML文字参照へ置き換える処理です。
<をHTMLで文字として表示するには?
<を使用します。
&をHTMLで表示するには?
&を使用します。
ダブルクォートはどう変換しますか?
"へ変換します。
シングルクォートはどう変換しますか?
一般HTML表記では'へ変換します。
<とは何ですか?
小なり記号の10進数値文字参照です。
©もデコードできますか?
はい。ブラウザが対応するHTMLの名前付き文字参照としてデコードします。
HTMLエスケープとURLエンコードは同じですか?
異なります。HTMLの文字参照とURLのpercent encodingは用途も表記も別です。
HTMLエスケープすればXSSは必ず防げますか?
いいえ。HTML本文・属性・JavaScript・CSS・URLなど、利用文脈に合った対策が必要です。
入力したHTMLは実行されますか?
実行しません。画像・script・iframe等を生成せず、文字列として処理・表示します。
入力内容はサーバーへ送信されますか?
送信しません。入力、変換、コピー用整形はブラウザ内だけで行います。