DevTool Kit

HTML エンティティ エンコード・デコード

`<script>` を `&lt;script&gt;` に変換して実行されないようにしたり、`&amp;#8212;` を全角ダッシュに戻したりできます。実体参照・10 進参照・16 進参照のすべてに対応します。

通常は最小限のエスケープで十分

HTML で本当にエスケープが必要なのは `&` `<` `>` `"` `'` の 5 文字だけです。これらをエスケープすれば、どんな文字列もマークアップや属性値に安全に置けます。それ以外まで変換するのは、文字コードの宣言が信頼できなかった時代の名残で、ソースを読みにくくするだけです。

非 ASCII もエスケープすべき場面

古い CMS、メールテンプレート、charset ヘッダが不明なシステムなど、UTF-8 が壊れうる経路を通す場合は、完全エスケープにすれば文字が確実に届きます。`&copy;` のような実体参照がある文字はそれを使い、なければ数値参照を使う設定も選べます。

システムが保存した内容を確認する

二重エスケープ(`&amp;amp;`)はよくある不具合で、2 か所のコードが同じ文字列をエスケープした結果です。1 回デコードすると `&amp;`、2 回で `&` になります。原因を確認したうえで、余分なエスケープ処理そのものを取り除いてください。

よくある質問

テキストは送信されますか?

いいえ。貼り付けた内容がブラウザの外に出ることはありません。ページは小さな JavaScript を読み込むだけで、計算はすべて手元の端末で行われます。送信先のサーバーそのものが存在しません。 エンコーダーもデコーダーも、DOM にもネットワークにも触れない小さな純粋関数です。

HTML エスケープで XSS を防げますか?

正しい文脈で正しい文字をエスケープすることが防御の中心ですが、文脈が重要です。テキスト、属性値、URL、インライン JavaScript ではそれぞれ扱いが異なります。文脈を理解しているフレームワークのエスケープ機能を使い、このツールは確認用と考えてください。

`&nbsp;` が普通の空白に見えます

ノーブレークスペースで、見た目は同じですが改行を抑止する別の文字です。ワープロやリッチテキストエディタから紛れ込むことが多く、意図した位置で折り返さないレイアウト崩れの原因になります。

シングルクォートには `&apos;` を使うべきですか?

`&apos;` は HTML5 と XML では有効ですが、HTML 4 では定義されていなかったため、非常に古いパーサーは認識しないことがあります。`&#39;` はどこでも安全です。古い環境を対象にするなら数値参照を使ってください。

関連ツール

Base64 エンコードBase64 デコードURL エンコード・デコードJSON 整形JSON → YAMLYAML → JSONJWT デコーダーハッシュ生成