HTML エンティティエンコーダー
テキストを HTML 用にエスケープします。& < > " ' をエンティティにし、非 ASCII 文字も名前付き・10 進・16 進で変換可能。マークアップの崩れを防ぎ、ローカルで動作。
44 文字 · 49 バイト(UTF-8)
0 文字 · 0 バイト(UTF-8)
すべてブラウザ内で実行されます。データがアップロードされることはありません。
HTML エンコードとは?
テキストを、マークアップとして解釈されずに HTML の中へ置けるようにエスケープします。既定では、重要な 5 文字 & < > " ' がエンコードされます。すべての非 ASCII 文字を、é のような HTML 4 の名前や数値参照のエンティティに変換することもできます。
HTML エンコードの使い方
- 入力 にテキストまたは HTML を入力または貼り付けます。
- エンコードする文字 を選びます。
& < > " 'のみ、またはすべての非 ASCII 文字も含めるかです。 - 実体参照の形式 を選びます。名前付き、10 進、16 進のいずれかです。
- エスケープされたテキストを 出力 からコピーします。
例
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
HTML エンコードを使うべき場面
ユーザーが入力したテキストやリテラルのテキストを、HTML、XML のようなテンプレート、コードを示すドキュメントに挿入するときに使います。すべての非 ASCII 文字をエンコードする必要があるのは、UTF-8 を保存できないシステムの場合だけです。HTML テキスト用のエスケープは、<script>、style、URL 属性の中では不十分で、それぞれ文脈に応じたエスケープが必要です。
HTML エンコードの仕組み
テキストはコードポイントごとに処理されます。&、<、>、"、' は常に置き換えられます(' は HTML 4 と 5 で動作する ' になります)。非 ASCII モードでは、U+007E を超えるすべての文字が、HTML 4 のエンティティ名があればそれに、なければ数値参照に置き換えられます。絵文字は、2 つのサロゲートの半分ではなく、😀 のような 1 つの参照になります。
一般的な使用例
- Web ページに HTML のコードサンプルを表示する
- ユーザー入力をマークアップに挿入する前にエスケープする
- テキストを HTML の属性に安全に入れる
- レガシーなメールテンプレート用に ASCII のみの HTML を作る
セキュリティ注意事項
エスケープは文脈に依存します。このツールの出力は、HTML の要素の内容と引用符で囲まれた属性では安全ですが、<script> ブロックや引用符なしの属性の中では安全ではありません。
よくある質問
なぜ ' ではなく ' なのですか?
' は HTML 4 で定義されておらず、古いパーサーの中には認識しないものがあります。' はどこでも動作します。
é や絵文字をエンコードする必要はありますか?
ページが UTF-8 で配信されているなら不要です。現在はそれが標準です。非 ASCII のオプションは、ASCII のみのシステムでだけ使ってください。
これで XSS を防げますか?
HTML のテキストと、引用符で囲まれた属性値に対しては正しいエスケープです。ほかの文脈(JavaScript、CSS、URL)には専用のエスケープが必要で、自動エスケープ機能を持つフレームワークを使うほうが安全です。