HTMLエンティティ変換
HTML Entity Encoder
HTMLの実体参照をエスケープして元に戻し、名前・10進・16進の書き方を出し分けます。
文字をHTMLのエンティティに変換し、また戻します。`&`、`&`、`&`の表記を選べ、どこまでエスケープするかも決められます。デコードのときはHTMLのパース仕様が求めるWindows-1252への読み替えも適用するので、`’`が制御文字ではなく丸いアポストロフィとして戻ります。
`&`、`<`、`>` だけ。タグとタグのあいだに入れるのに必要なのはこれで全部で、それ以上ではありません。
テキスト
符号化された値
XMLが定める五つ
| 文字 | 名前 | 10進 | 16進 |
|---|---|---|---|
| & | & | & | & |
| < | < | < | < |
| > | > | > | > |
| " | " | " | " |
| ' | ' | ' | ' |
DTDなしでXMLが持つ名前付き参照はこの五つだけです。XML文書のそれ以外はすべて数値参照でなければなりません。
使い方
どこまでエスケープするかを決めます
テキスト内容は`&`、`<`、`>`だけを変えます。タグとタグのあいだに置くのに必要なのはそれで全部です。属性値はそこにクォート2種類を足します。非ASCIIすべては、UTF-8を運べないパイプライン向けで、日本語のテキストは7倍ほどに膨らみます。
表記を選びます
名前(`&`)がいちばん読みやすい形です。10進数と16進数は数値参照なのでXMLでも動きます。XMLはDTDが無ければ名前付きの参照が5つしかありません。
あるいは逆向きに戻します
エスケープ解除に切り替えて、エンティティだらけの文章を貼り付けます。表に無い参照は一覧にして知らせ、消さずに書かれたままにします。
よくある質問
一部のエンティティがそのまま残ったのはなぜですか
HTML5は名前付きの参照を2231個定義していますが、ここの表はその中から選んだ部分集合です。Latin-1の文字すべて、約物、ギリシャ文字、矢印、よく使う数学記号です。それ以外のものは黙って捨てるのではなく、注記に名前を挙げて知らせます。そちらのほうが正直な失敗のしかたです。
エンティティに変えればXSSを防げますか
テキスト内容と、クォートで囲んだ属性値には正しいエスケープです。それ以外の場所では足りません。`<script>`ブロックの中、`javascript:`のURL、クォートの無い属性、CSSの文脈では、エンティティのエスケープは何の役にも立ちません。エスケープは、それが置かれる文脈に合っていなければなりません。
`’`がアポストロフィとしてデコードされるのはなぜですか
HTMLのパース仕様が、数値参照の0x80–0x9Fのコードポイントを、その位置のWindows-1252の文字へ読み替えるよう定めているからです。文字どおりに解くと、目に見えないC1制御文字になります。Wordから貼り付けた文章を素朴なデコーダで解くと、まさにそうなります。
XMLで` `を使えますか
それを宣言したDTDが無ければ使えません。XMLがあらかじめ定義している名前付きの参照は`&` `<` `>` `"` `'`の5つだけで、ページ下部の表にその5つがまとまっています。それ以外はすべて数値参照でなければなりません。
ここから渡せます
HTML整形・圧縮
HTML Beautifier & Minifier
HTMLを整形または圧縮し、インライン要素は保ったまま空白をどこまで詰めるかを選べます。
URLエンコード・デコード
URL Encoder & Decoder
URLとクエリの値をパーセント符号化・復号し、URL全体と構成要素のどちらとして扱うかを切り替えられます。
文字列エスケープ
String Escaper
JSON・JavaScript・SQL・シェル・CSV・正規表現の規則に合わせて文字列をエスケープし、元にも戻します。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
HTML整形・圧縮
HTML Beautifier & Minifier
HTMLを整形または圧縮し、インライン要素は保ったまま空白をどこまで詰めるかを選べます。
文字列エスケープ
String Escaper
JSON・JavaScript・SQL・シェル・CSV・正規表現の規則に合わせて文字列をエスケープし、元にも戻します。
Unicode文字の解析
Unicode Inspector
テキストをコードポイントに分解し、名前・ブロック・用字系とUTF-8/UTF-16のバイト列を示します。
URLエンコード・デコード
URL Encoder & Decoder
URLとクエリの値をパーセント符号化・復号し、URL全体と構成要素のどちらとして扱うかを切り替えられます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。