HTMLエンティティのエンコーダー・デコーダー
プライバシー優先設計 — すべてブラウザ内で処理します
特殊文字をHTMLエンティティへエンコードしたり、エンティティを平文へデコードしたりできます。Toovaはすべての名前付きエンティティ、数値参照、16進参照に対応し、すべてブラウザ内で動作します。コピーのサニタイズ、テンプレートのデバッグ、コンテンツの安全な書き出しに便利です。
名前付き、数値、16進エンティティ
HTMLでは同じ文字を3通りの方法で表現できます。名前付き(&)、10進数値(&)、16進数値(&)です。Toovaは読みやすさを優先して既定で名前付きエンティティを出力しますが、下流システムが要求する場合は数値または16進モードに切り替えられます。デコードは3形式すべてを透過的に扱います。何を貼り付けても平文として返ってきます。
選択的なエンコード
すべての文字をエンコードすると、HTMLが肥大化し読みにくくなります。Toovaは既定で、HTMLで特別な意味を持つ文字、つまり山括弧、アンパサンド、引用符だけをエンコードします。aggressiveモードに切り替えれば、ASCII外の文字をすべてエンコードできます。厳密なASCII環境にコンテンツを出力したり、静的HTMLメールを組み立てたりするときに便利です。
ローカルのみ
すべての処理はブラウザ内で行われます。貼り付けた入力がサーバーへ送信されることはなく、内容のログ記録もありません。ユーザー投稿、顧客からのフィードバックなど、非公開に保つべきテキストにも適しています。エンコード中、開発者ツールのNetworkタブは外向きの通信ゼロのままです。
よくある質問
- 名前付きエンティティと数値エンティティの違いは何ですか?
- 名前付きエンティティ(&)は読みやすい反面、パーサーが名前を認識する必要があります。数値エンティティ(&)と16進エンティティ(&)は、どのHTMLやXMLパーサーでも動作するため、RSSやメールなどブラウザ以外の文脈でも安全です。
- すべての文字をエンコードすべきですか?
- いいえ。必要なものだけ、つまり山括弧、アンパサンド、引用符のみをエンコードすれば、出力は読みやすく軽量に保てます。ASCII外の全バイトをエンコードするのは、出力先が厳密なASCIIに限られる場合のみです。
- 絵文字や非ラテン文字も扱えますか?
- はい。絵文字、アクセント付き文字、CJK文字もすべて、数値または16進形式に正しくエンコードされます。デコードすると、旗の絵文字のような複数コードポイント列も含めて元通り復元されます。
- エンコードはXSSを防げますか?
- ユーザー入力をHTMLに埋め込む前にエンコードするのは正しい第一歩ですが、それだけでは不十分です。既定でエスケープする適切なテンプレートエンジンと、ページのコンテンツセキュリティポリシーを必ず併用してください。
- 貼り付けたテキストはどこかへ送信されますか?
- いいえ。エンコードとデコードはすべてブラウザ内で行われます。アップロードもログ記録もありません。