HTMLエスケープについて
テンプレート、メール、CMS 出力ではリテラルの <> とエンティティが混在します。hidevtool の HTML エンティティコーデックは、HTML 文脈向けにテキストをエスケープするか、エンティティを Unicode に戻します。
エンコードは &, <, >、引用符を中心に扱います。デコードは 、< などの命名エンティティと &#十進; / &#xhex; 参照を、形式が正しければ解釈します。
ドキュメントにユーザー引用を埋める前はエンコード、ログで &lt; が二重になっているときはデコード——FAQ で属性とテキストノードの違いも触れます。
できること
基本エスケープ
& → &、< → <、> → >、引用符 → " / ' など、典型的なテキストノード向けです。
命名エンティティ
デコードは ; で終わる 、© など HTML5 で一般的な名前付き参照を認識します。
数値参照
Ӓ や 😀 は Unicode コードポイントにデコードされます。有効な列なら emoji も復元されます。
サニタイザーではない
エスケープだけでは信頼できない HTML を安全にしません。ユーザー markup を描画する前にサニタイズしてください。
属性とテキスト
属性値も引用符付きエンティティが必要です。本ツールは貼り付け文字列を一律エスケープします。テンプレート側で属性を引用符で囲んでください。
二重エスケープ
すでに & になっているものを再エンコードすると &amp; になります。編集前に一度デコードしてください。
よくある使い方
HTML の特殊文字をエスケープするには?
プレーンテキストを貼り「エンコード」し、テンプレートやドキュメント例にコピーします。
& などをデコードするには?
エンティティ文字列を貼り「デコード」します。参照が well-formed である必要があります。
HTML ドキュメント全体を処理しますか?
貼り付けた文字列のみです。ページ全体の自動ラップはしません。ユーザー供給のテキストノード向けです。
よくある質問
- HTML の特殊文字をエスケープするには?
- プレーンテキストを貼り「エンコード」し、テンプレートやドキュメント例にコピーします。
- & などをデコードするには?
- エンティティ文字列を貼り「デコード」します。参照が well-formed である必要があります。
- HTML ドキュメント全体を処理しますか?
- 貼り付けた文字列のみです。ページ全体の自動ラップはしません。ユーザー供給のテキストノード向けです。
- HTML5 のエンティティはすべて対応?
- 一般的な命名・数値形式はデコードできます。稀な legacy エンティティはブラウザ DOM パースが必要な場合があります。
- JSON 内の < も HTML エンティティにすべき?
- JSON は \u エスケープを使います。Unicode 転義ツールや JSON.stringify を使ってください。
- デコード結果がおかしい
- 参照の ; 欠落や混在エンコーディングが原因のことがあります。ソースを直すか段階的にデコードしてください。