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

テキストを名前付き・10進・16進のエンティティで HTML 用にエスケープしたり、& や &eacute; などのエンティティを文字に戻したりします。

https://codeknife.dev/ja/html-entity/

## できること

テキストを HTML 用にエスケープし、HTML エンティティを文字に戻します。エンティティは文字を名前（`&eacute;`）、10進数（`&#233;`）、16進数（`&#xE9;`）で書き表します。

## 使い方

1. テキストを入力または貼り付けるか、テキストファイルをドロップします。
2. **エンコード**か**デコード**を選びます。エンコードでは、HTML がマークアップとして読む文字だけをエスケープするか非 ASCII 文字もエスケープするか、名前・10進・16進のどれで書くかを選びます。
3. 結果をコピーまたはダウンロードします。

## 例

マークアップのエスケープ：

`<p class="x">Tom & Jerry</p>` は `&lt;p class=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/p&gt;` になります。非 ASCII 文字もすべてエスケープすると、`café © €` は `caf&eacute; &copy; &euro;` になります。

## 知っておくと便利なこと

- HTML のテキストと属性で常にエスケープが必要な文字は `&`、`<`、`>`、`"`、`'` です。
- アポストロフィは HTML 4 に名前がないため `&#39;` と書きます。デコードは `&apos;` も読みます。
- 絵文字のように名前のない文字は、1文字につき1つの数値で書かれます。
- 名前の表は HTML 4.01 の252個のエンティティを含みます。表にない名前は、デコード時に入力のまま残ります。

## HTML エンティティとは？

エンティティは、文字を入力せずに HTML に書く方法です。&eacute; のような名前、または &#233;（10進）や &#xE9;（16進）のような数値で書きます。HTML がマークアップとして読むため、テキストと属性では5つの文字（& < > と2種類の引用符）をエスケープする必要があります。

## よくある質問

### どの文字をエスケープすべきですか？

テキストでは & と <、属性値の中ではその値を囲む引用符をエスケープします。> と両方の引用符をどこでもエスケープしても無害で、それが安全な既定値であり、「マークアップのみ」が行うことです。ユーザー入力をこのようにエスケープすることは、注入されたマークアップへの第一の防御です。

### アポストロフィが名前でなく &#39; になるのはなぜですか？

HTML 4 にはアポストロフィの名前付きエンティティがありません。&apos; は XML と HTML5 にありますが古いソフトウェアは知らないため、数値が安全な選択です。デコードはどちらも受け付けます。

### このツールはテキストをどこかに送信しますか？

いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。