HTML エンティティ

<、>、& と引用符を HTML エンティティにするか、エンティティを文字に戻します。

文章を HTML に入れられるようにします

< や & をそのまま HTML に入れると、ブラウザは印とみなします。エンコードはそれらの文字をエンティティにし、デコードはエンティティを文字に戻します。JSON エスケープ とは別で、タグを削る処理でもありません。書き換えるのは文字だけです。

操作

  1. 元の文章か、エンティティの文字列を貼ります。
  2. 向きはエンコードかデコードです。エンコードは必ず &、<、> と二種類の引用符を逃がします。単一引用符は &#39; になります。
  3. 「ASCII 以外の文字もエンコード」をオンにすると、漢字やアクセント付きの文字は &#xHHHH; になります。ページが UTF-8 で、印の文字だけ逃がしたいときはオフにしてください。例はこれをオンにし、中身は a < b & "text" です。
  4. デコードは &#20013; のような十進、&#x4E2D; のような十六進、そして短い名前の一覧を受けます。amp、lt、gt、quot、apos、nbsp、copy、reg、trade、mdash、ndash、hellip、laquo、raquo、bull、middot、euro、pound、yen、cent、sect、para、deg、plusmn、times、divide、micro です。一覧に無い名前はそのまま残ります。

しないこと

エンコードはタグを足しません。文書型も足しません。すでにエンティティの & をもう一度エンコードすると &amp; になります。デコードは一層だけ剥がします。HTML5 の名前の多くは上の一覧に無く、そのまま残ります。有効な符号点でない数値参照も原文のままなので、書き間違いが見えます。

使う場面

  • 利用者の入力を HTML に入れ、タグにならないようにします。
  • 漢字を数値参照で保存した古いページやフィードを読みます。
  • 描画する前に、テンプレートが実際に何を出すか見ます。

よくある質問

&euro; が文字のままです

いまがエンコードなら、& 自体が逃げていて、見えているのはエンティティのソースです。デコードにすると、知っている名前が文字になります。

HTML5 の名前を全部欲しい

このページは日常の文章でよく出る名前と、任意の数値参照です。知らない名前は残し、綴りの間違いを静かに捨てません。