エンコード

HTML Entities Encode/Decode

HTML エンティティのエンコード・デコード — ページ上で特殊文字を安全に表示。

HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like &lt; or &amp;. This tool encodes and decodes such entities right in your browser.

How to use it

Common uses

Things to keep in mind

HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.

Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.

このツールに関する記事: HTML Entities:特殊文字を安全に表示する方法

よくある質問

HTML エンティティとは何ですか?

<や&のようにHTMLで特別な意味を持つ文字や、キーボードで入力しにくい記号を、マークアップを壊さずページに表示するための表記法です。&lt;のような名前付き参照と、&#60;や&#x3C;のような数値参照の2種類があります。

「基本」と「すべての文字」の違いは何ですか?

「基本」は<、>、&、\"、'などHTMLの構文上エスケープが必須な文字だけを変換します。「すべての文字」はASCII範囲外の文字も含め、対応するエンティティにできる限り変換します。

名前付きエンティティと数値参照はどちらを使うべきですか?

&amp;のような名前付きエンティティは可読性が高く一般的ですが、HTMLが定義する名前付きエンティティは限られています。&#38;や&#x26;のような数値参照はどんな文字コードポイントにも使えるため、より汎用的です。

本文中と属性内ではエスケープの仕方が違いますか?

基本的な文字(<、>、&)のエスケープは同じですが、引用符で囲まれた属性の中ではさらに、その属性を囲んでいる引用符の種類を必ずエスケープする必要があります。そうしないと値が想定より早く「断ち切られて」しまいます。

HTMLエスケープはすべての種類のXSSを防げますか?

いいえ。最も一般的な経路であるHTMLコンテンツへのテキスト挿入は防げますが、innerHTMLなどJavaScriptの文脈で発生するXSSや、href/src内の未検証URLによる攻撃は防げません。

記事: エンコード

Base64とは何か、なぜ必要で、どう動くのか

Base64がバイナリデータをASCIIテキストにどう変換するか、実際にいつ必要になるか。

Base32:Base64との違いと、どんな場面で便利か

大文字小文字を区別しないBase32のアルファベットと、Base64より便利な場面。

URL Encode/Decode:リンクにおけるパーセントエンコーディング

アドレスやパラメータ中の特殊文字が%XXの並びに変わる仕組み。

JWT:トークンの構造と「デコード」の意味

JWTのheader、payload、signatureと、デコードが署名検証と同じでない理由。

Unicode Escape:\uXXXX形式が意味するもの

JSONやJS文字列に現れる\u0041のようなシーケンスがどこから来て何を意味するか。

ROT13とシーザー暗号:単純な文字の置き換え

13文字分のシフトがROT13を自己反転にする理由と、今なお使われる理由。

Punycode:国際化ドメイン名がDNSでどう動くか

非ラテン文字を含むドメインがxn--プレフィックス付きのASCII形式にどう変わるか。

モールス符号:テキストが点と線に変わる仕組み

文字を点と線でエンコードする原理と、モールス符号が今どこで使われているか。

Data URI:画像をコードに直接埋め込むべき場面

Data URIがファイルの内容をHTMLやCSSに直接埋め込む仕組みと、それが有効な場面。

Gzip + Base64:テキストとして送るためのデータ圧縮

圧縮されたバイナリデータをテキストフィールドに入れる前にBase64でもエンコードする理由。

XML Entities:XML文書内の文字をエスケープする

これがないと解析時に文書が壊れる、XMLの5つの必須エンティティ。