特殊文字をHTMLエンティティに変換・復元
| 文字 | エンティティ | 数値コード | 名称 |
|---|---|---|---|
| < | < | < | 小なり |
| > | > | > | 大なり |
| & | & | & | アンパサンド |
| " | " | " | ダブルクォート |
| ' | ' | ' | シングルクォート |
| ` | ` | ` | バッククォート |
| / | / | / | スラッシュ |
🔒 テキストはサーバーに送信されません
HTMLでは、いくつかの文字が特別な意味を持っています。本文に<と書けばブラウザはタグの始まりだと解釈しますし、&と書けばエンティティが続くものとして扱います。エスケープは、こうした文字を安全な代替表記に置き換えて、タグとしてではなく文字そのものとして表示させる処理です。アンエスケープはその逆で、エンティティを元の読みやすい文字に戻します。
入力した内容はすべてブラウザ内で処理されます。サーバーに送信されることは一切ないため、貼り付けた内容は手元に保たれたままです。
身近な理由は「表示」です。ブログでHTMLの書き方を解説していて、<div>タグそのものを見せたいとき、そのまま書くとブラウザは本物のdivとして解釈してしまい、例として見せたかったコードが画面から消えてしまいます。エスケープすれば、文字としてそのまま表示できます。
もうひとつ、より重要な理由が安全性です。利用者が入力した文章をエスケープせずにページへ出力すると、タグのように見えるものがタグとして解釈されてしまいます。コメント欄が、他の人のブラウザでスクリプトを実行させる入口になりうるということです。これがクロスサイトスクリプティング(XSS)と呼ばれる問題で、出力時のエスケープが基本的な対策になります。なお、このツールはコードの断片を手元で確認・準備するのに便利ですが、アプリケーションの中では、フレームワークやテンプレートエンジンの機能に任せるのが確実です。すべての値に対して漏れなく処理されるためです。
通常の本文では、不等号(< と >)とアンパサンド(&)が基本です。属性値の中に文字を入れる場合は、クォートも対象になります。
通常のHTMLでは不要です。テンプレートリテラルやスクリプトの中にテキストを埋め込む場合など、これらの文字も意味を持つ場面のための指定です。
二重にエスケープされている状態です。すでにエンティティになっていた文字列のアンパサンドが、もう一度エスケープされたために起きます。アンエスケープを1回かければ元に戻ります。
いいえ。変換処理はすべてお使いのブラウザ内で行われるため、貼り付けた内容が端末から外に出ることはありません。