OpenReplay Logo
12k
12k

HTML エンティティエンコーダー/デコーダー

HTMLエンティティをオンラインでエンコード・デコードします。名前付き、10進、16進に対応し、ローカルで処理されるため、貼り付けた内容がブラウザの外に出ることはありません。

出力
範囲
ローカルで処理されます

このツールについて

HTMLエンティティは、そのままではマークアップとして解析されてしまう文字や、確実に入力できない文字を表すエスケープシーケンスです。小なり記号の<、アンパサンドの&、ノーブレークスペースの 、そして任意のUnicodeコードポイントを表す (10進)や (16進)のような数値形式があります。エンコードは生の文字をそのエンティティに変換し、デコードはエンティティを文字に戻します。本ツールは名前付き、10進、16進の形式でエンコードし、これら3つの形式すべてをデコードします。一般的な名前付きセットや絵文字のようなアストラル文字にも対応しています。

ユーザー生成の文字列、コードサンプル、引用を、ページを壊したりXSSの穴を開けたりせずにHTMLに安全に埋め込んだり、設定ミスのあるテンプレートから&amp;amp;として二重エンコードされて届いたテキストを修復したり、&#8212;のような数値参照を調べてそれがem dashであることを確認したり、アクセント付き文字や記号を古いメールやフィードのパイプライン向けにASCIIのみのエンティティに変換したりするのにお使いください。エンコードはデフォルトで & < > " ' のみをエスケープしますが、完全なスコープを有効にするとすべての非ASCII文字をエスケープします。

HTMLエンティティのエンコードは安全な表示のためのものであり、セキュリティのためのものではありません。信頼できない入力はHTMLにレンダリングされる時点でエンティティエンコードし、XSSを防ぐには本物のサニタイザーとContent Security Policyに頼ってください。

よくある質問

名前付き、10進、16進のHTMLエンティティの違いは何ですか?

これらは同じ文字の3つの表記法です。©のような名前付きエンティティは人間が読みやすいですが、決まった文字の集合にしか存在しません。10進(&#169;)と16進(&#xA9;)の数値参照は任意のUnicodeコードポイントに対して機能するため、どんな文字も常に数値で表現できます。

どの文字をHTMLエンティティとしてエンコードする必要がありますか?

最低限、HTMLパーサーにとって重要な5つです。& (&amp;)、< (&lt;)、> (&gt;)、" (&quot;)、' (’) です。アンパサンドを最初にエンコードすることが不可欠です。さもないと既存のエンティティが二重エンコードされてしまいます。その他の文字は任意で、ASCIIのみの転送にのみ必要です。

なぜテキストが&の代わりに&amp;と表示されるのですか?

それは二重エンコードです。アンパサンドが2回エスケープされており、通常は既にエンコード済みのHTMLが再びエンコーダーに通されたことが原因です。テキストを1回デコードすると&amp;amp;は&amp;に戻り、2回目のデコードでリテラルの&が得られます。本ツールは1回の実行につき1レベルだけデコードするため、段階を追ってほどいていけます。