エンコードとエスケープ

HTMLエンティティ変換文字参照を一層ずつ確認

文字参照を一層ずつ確認

HTMLエンティティ変換

入力

結果

プレーンテキストのプレビュー

最大20,000 UTF-16単位を文字として表示し、マークアップは実行しません。

変換はこのブラウザー内で行い、入力は送信しません。

変換設定

U+0020–U+007EとTAB、CR、LFを保持しますが、&、<、>、両引用符、バッククォートは除きます。保持をオフにすると全てを変換。デコードはHTML5のテキストまたは属性規則で一層だけ処理し、未知の参照は残します。不正な数値参照とC1にはHTMLの置換を適用します。

入力上限は1,048,576 UTF-16単位、出力は4,194,304単位です。空入力は有効です。貼り付け時に改行が正規化される場合があります。

テキストを入力するかサンプルを選んでください。空入力の結果は空文字列です。

確認後に最新の結果を入力へ移し、方向を切り替えます。結果が入力の上限を超える場合は使えません。

記事に載せるタグを文字として見せたいとき、HTMLエンティティ変換で山括弧や引用符の表現を確認できます。HTMLエンコードでは名前付き参照を優先し、必要なら数値文字参照へ切り替えられます。

HTMLデコードは文書の描画とは別の処理です。CMSから取り出した文字列を読める形に戻しても、その結果をページとして解析したり実行したりはしません。

HTMLエンティティ変換が役立つ場面

表記の違いを目で確かめる

HTMLエンティティ変換なら、同じ文字を名前付き・10進数・16進数で表せます。対応する名前がない場合は大文字の16進数へフォールバックするため、名前の有無を調べる手間を省けます。

三つのエンティティ表記が同じ記号に集まる図。

タグを文字列のまま読む

デコードで現れた山括弧も、結果欄では文字のままです。サンプルコードや二重に変換された文章を調べても、タグが画面の要素として動作することはありません。

読み取り専用の文書が記号をプレーンテキストとして保持する図。

文脈と更新方法を選ぶ

01

既定の保持範囲を知る

印字可能なASCIIとTAB、CR、LFは既定で保持します。ただし&、<、>、一重引用符、二重引用符、バッククォートは必ず変換し、非ASCII文字も変換します。保持をオフにすると全ての文字が対象です。

02

更新を待つか手動で実行する

自動変換は編集から350ms後に動作します。オフにすると変換ボタンが現れ、Ctrl/Cmd+Enterでも実行できます。入力や設定が変わると、更新完了までコピーと保存は無効になります。

03

置き換える前に内容を見る

サンプル、クリア、結果から逆変換は適用前にプレビューを表示します。元に戻すと入力・設定・結果をまとめて復元します。表示は最大20,000 UTF-16単位で代理対を分断せず、書き出しは全文です。

参照の形式と読み方

HTML5の名前を扱う

&amp;や&lt;だけでなく、HTML5の完全な名前付き参照表を使います。デコードでは10進数と16進数の参照を同じ入力に混在させられます。 HTML5の名前付き参照は二つのコードポイントをまとめて表す場合があり、全文のエンコードではfjが&fjlig;になることがあります。

テキストと属性を切り替える

既定はテキスト文脈です。属性文脈では、セミコロンを省略した一部の旧形式について、後続のASCII英数字や等号によって認識が変わります。

一回で一層だけ戻す

&amp;lt;をデコードすると&lt;になります。未知の参照はそのまま残すため、必要な場合だけ出力を確認して追加の変換を行えます。

入力の異常箇所を示す

生のNULと孤立したUTF-16サロゲートは行・列付きのエラーになります。一方、不正な数値参照はHTMLの置換規則に従います。

変換の境界と例外

保持する文字の範囲
U+0020–U+007EとTAB、CR、LFを保持しますが、&、<、>、両引用符、バッククォートは除きます。保持を無効にすると全てを変換します。既存の参照内の&も再度変換されます。
数値参照の補正
ゼロ、サロゲート、U+10FFFFを超える数値参照はU+FFFDになります。C1数値参照にはHTMLの歴史的な置換が適用され、生のC1制御文字は往復で変化する場合があります。
再帰的には展開しない
一回の実行は一層のデコードです。セミコロンなしの旧形式は選択した文脈に応じて解釈し、未知の参照は残します。 次の層をデコードするには、現在の結果を入力欄にコピーし、再びデコードを選びます。逆変換は方向を切り替えるため、それだけでは追加のデコードになりません。
安全化や文書解析はしない
HTMLの解析・描画・サニタイズは行いません。JavaScript、CSS、URL、属性への挿入を安全にするための処理は、利用先に応じて別途必要です。 XMLの文字参照規則は別の用途であり、このページはHTML5の規則を使います。
元の文字列を検査する
どちらの方向でも生のNULと孤立サロゲートは拒否します。Unicode正規化は行いませんが、貼り付け時にエディターが改行を正規化する場合があります。
上限内の全文を出力する
入力上限は1,048,576 UTF-16単位、出力上限は4,194,304単位です。超過時は全体をエラーにします。空入力は有効で、ファイル読み込みやURL取得には対応しません。

HTMLエンティティ変換のよくある質問

HTMLエンティティをエンコードすべきタイミングは?

HTMLエンティティ変換は、説明文中の<article>などを文字参照で表したいときに使えます。実際の出力先では、挿入する文脈に合ったエスケープ処理も確認してください。

HTMLエンティティをデコードすべきタイミングは?

CMSやAPIから得た&lt;や&amp;を読みやすい文字に戻したい場合です。出力は文字列として確認でき、HTML文書として実行されません。

名前付きエンティティと数値文字参照の違いは何ですか?

&copy;は名前から文字を参照し、&#169;と&#xA9;はコードポイントで同じ文字を指定します。名前付き形式でも名前のない文字には16進数参照を使います。

HTMLエンコードとURLエンコードは同じですか?

異なります。文字参照はHTMLの文字表現で、URLのパーセントエンコードとは規則も目的も違います。このページはURL変換を行いません。

このツールはHTMLをレンダリングまたは実行しますか?

しません。結果とプレビューはプレーンテキストです。ただし、コピーした文字列を別のアプリでHTMLとして挿入する場合の安全性まで保証するものではありません。

説明のない変換エラーがありましたか?

短い例で表記を確かめる

HTMLエンティティ変換で形式と文脈を選び、結果が更新されたことを確認してから全文を書き出せます。