エスケープ処理の概要・基礎知識
エスケープとは、各データ形式やプログラミング言語で特別な意味を持つ文字(例:HTMLにおける < や >)を、表示用の安全な記法に変換する処理です。逆にエスケープ済みの文字列を元の文字に戻す処理をアンエスケープ(デコード)と呼びます。本ツールはHTML・JSON・XML・CSS・JavaScript・URLの6形式に対応しており、入力テキストをワンクリックで双方向変換できます。XSS(クロスサイトスクリプティング)対策、APIレスポンスのデバッグ、CSVやJSONの混入文字対応、URLパラメータの組み立てなど、Web開発・データ処理の現場で頻繁に発生する作業を高速にこなすためのツールです。
対応形式と変換ルール
| 形式 | エスケープ対象 | 主な用途 |
|---|---|---|
| HTML | & < > " ' を実体参照に | HTMLにユーザー入力を埋め込む際のXSS対策 |
| JSON | " \ 改行 タブ 制御文字を\記法に | APIレスポンス・設定ファイル・ログ出力 |
| XML | & < > " ' をXML名前参照に | XMLデータ・RSS・SVG・XAMLの属性値 |
| CSS | 特殊文字を\XXXX 形式(Unicodeエスケープ)に | CSSセレクタの特殊クラス名・content属性 |
| JavaScript | ' " \ 改行 制御文字を\記法に | JSコード内の文字列リテラル組み立て |
| URL | 非ASCII・予約文字を%XX形式(パーセントエンコード)に | URLパラメータ・クエリ文字列・リダイレクトURL |
使い方の流れ
- 画面上部のタブで形式(HTML / JSON / XML / CSS / JavaScript / URL)を選びます。形式によって変換対象の文字や記法が異なるため、貼り付けるテキストの種類に合わせて選択してください。
- 「入力テキスト」欄に、エスケープしたい文字列、またはアンエスケープしたい文字列を貼り付けます。「サンプルを入力」ボタンを使うと、形式ごとの典型例が自動で挿入されます。
- 「エスケープ」ボタンで生テキストをその形式の安全な記法に変換、「アンエスケープ」ボタンでエスケープ済みの文字列を元に戻します。
- 「↕ 入力と結果を入れ替え」ボタンで、変換結果をそのまま入力欄に移して再変換でき、エスケープとアンエスケープを連続して試したいときに便利です。
- 変換結果は「結果をコピー」ボタンでクリップボードに転送できます。コードエディタやAPIテストツール、ブラウザのコンソールに即座に貼り付けられます。
こんな場面で使う
- XSS対策の実装確認:ユーザー入力をHTMLに表示する前に必要なエスケープが施されているか、本ツールでサンプルを変換して挙動を確認できます。
- JSON文字列の埋め込み:改行や引用符を含む長文をJSON値として安全に渡したいとき、エスケープした結果をそのままコピーして利用できます。
- URLパラメータの生成:日本語のクエリ文字列や半角スペースを含むパラメータを正しい%エンコード形式に変換し、リダイレクトURLや検索リンクを構築できます。
- ログ・エラーメッセージの解読:エスケープされた状態でログに残った文字列を読みやすい形に戻し、デバッグ作業を高速化します。
- CSVやTSVへの混入対策:改行・タブ文字・制御文字を含むデータをJSやJSONリテラルとして扱う際、安全に取り回せます。
使う前に知っておきたい注意点
- HTMLとXMLでは類似のエスケープ規則を使いますが、属性内とテキスト内では必要なエスケープが異なります。XML属性内では
"や'も必須なので、用途を確認してください。 - JavaScriptのテンプレートリテラル(バッククォート)内では
${}も特殊文字となり、本ツールの一般的なJSエスケープではカバーしません。テンプレート文字列に貼る場合は手動で対応してください。 - URLエンコードでは「クエリ文字列用」と「パス用」で扱いが微妙に異なります。スペースを
+に変換するか%20に変換するかは仕様によって違うため、リクエスト先の仕様を確認してください。 - 本ツールはブラウザ標準の
encodeURIComponent・JSON.stringify・実体参照テーブルを基に変換しています。サーバーサイドの言語固有の関数(PHPのhtmlspecialcharsなど)と完全に一致しない場合があります。 - 機密情報(APIキー・トークン・個人情報)を貼り付けた場合でも本ツールは外部送信しませんが、コピー操作後にクリップボード履歴が残る可能性があります。共有PCでの利用時は履歴クリアを忘れずに行ってください。
用語の補足
- 実体参照(Entity Reference):HTML/XMLで特殊文字を表す記法。
&のような名前参照と&のような数値参照があります。 - パーセントエンコード:URLで使われる
%XX形式の符号化方式。RFC 3986で定義され、UTF-8バイト列を16進数で表現します。 - 制御文字:改行(\n)・タブ(\t)・ベル(\a)など、表示されないが意味を持つ文字。JSON/JSではバックスラッシュ記法でエスケープされます。