100% ローカル — データがブラウザの外に出ることはありません

HTMLエスケープ|文字は文字のままページに表示されるようにする

テキストをHTML用に逃がします。構造を作る5文字は名前付きの実体参照になり、ASCIIより上の文字は、どのページでも同じように通る数値参照へと置き換えられます。

高速 プライベート Cookieゼロ

Text 入力

HTML Entities 出力

このツールの動作

HTML の意味を変える五文字には名前が付きます。

文字出力
&&
<&lt;
>&gt;
"&quot;
'&#39;

印字可能な ASCII を超えるものはすべて十進の数値文字参照になります。é は &#233;、€ は &#8364; です。

名前付きではなく数値で

é は &eacute; ではなく &#233; として出ます。これは意図した選択です。

名前付き実体は文書型が定義していなければなりません。HTML は数千を定義しますが、XML が定義するのはちょうど五つです。&eacute; を XML ファイル、Atom フィード、XML として配信される XHTML 文書に貼れば、パーサーは未定義実体を報告します。&#233; はどれでも通ります。

見えない文字が見えるようになる

ノーブレークスペースは &#160; になります。これが道具を使う目的そのものであることも多いのです。Word から貼られた U+00A0 はエディタ上では空白と全く同じに見えて、挙動はまるで違います。符号化はそれを見つける手段です。

タブと改行はそのまま残ります。HTML のテキストとして正当ですし、参照に変えても原稿が読みにくくなるだけです。

アポストロフィ

' は &apos; ではなく &#39; になります。&apos; は XML と HTML5 では定義されていますが、HTML 4 では定義されていません。その方式の文書は引用符ではなく七文字をそのまま表示します。数値形式にはこの穴がありません。

単位ごとではなく文字ごとに一つの参照

絵文字は &#128512; という一つの参照として出ます。基本多言語面の外の文字は内部で二つの単位として保持され、素朴なエスケープ処理はそこで壊れた参照を二つ出します。このツールはコードポイント単位で走査します。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ é は &eacute; ではなく &#233; になるのですか。
数値文字参照はどの文書でも通るからです。五つを超える名前付き実体は HTML の文書型が定義します。XML が事前定義するのはちょうど五つだけなので、XML ファイル中の `&eacute;` は未定義実体エラーになります。`&#233;` にはその条件がありません。
ASCII 以外の文字をすべてエスケープする必要がありますか。
いいえ。文字コードを宣言した UTF-8 文書は `é` をそのまま表示しますし、通常はそちらが良い原稿です。エスケープが要るのは、ASCII しか通らない経路や自分で制御できない経路を通るときです。古いテンプレートエンジン、メールゲートウェイ、符号化の分からないデータベース列などです。
これだけで利用者の入力は HTML で安全になりますか。
テキスト内容と引用符で囲んだ属性値であれば十分です。その五文字こそがマークアップの意味を変えます。ただし `<script>` や `<style>` の内部、引用符のない属性、`javascript:` が問題になる URL 属性では**不十分**です。エスケープは文脈依存で、この道具が担うのは一つの文脈です。

関連ツール