文字列エスケーパー

8 つの形式の文字列をエスケープまたはアンエスケープします:HTML、XML、JavaScript、Java、.Net(C#)、JSON、CSV、SQL。
すべての処理はブラウザー内でローカルに行われます — データはサーバーに一切アップロードされません。
形式:
方向:
⚠ セキュリティ警告:文字列のエスケープはパラメータ化クエリの代わりにはなりません。 エスケープだけでは SQL インジェクションを防止できません。本番コードでは必ずパラメータ化クエリ(プリペアドステートメント)を使ってください。
使い方:形式と方向(エスケープ / アンエスケープ)を選び、テキストを入力または貼り付けます — 出力は自動更新されます。処理で手動変換もできます。
JSON、JavaScript、Java、.Net モードでは、すべての非 ASCII 文字をエスケープにチェックすると、中国語などの文字を \uXXXX シーケンスに変換できます。
アンエスケープはエスケープの逆です:< は < に、\n は改行になります。
HTML:エスケープは & < > " ' を HTML エンティティ(& < > " ')に変換します。XSS 攻撃を防ぐため、ユーザー生成テキストを HTML に埋め込むときに使ってください。
アンエスケープは HTML エンティティ(& < > " ')を元の文字に戻します。ブラウザー内蔵の HTML パーサーを使い、すべての名前付き・数値エンティティを確実にデコードします。
XML:エスケープは HTML と同じ 5 文字(& < > " ')を XML セーフなエンティティに変換します。XML では属性値の中も含め、すべての & のエスケープが必須です。
アンエスケープは XML エンティティを元の文字に戻します。5 つの定義済み XML エンティティと数値文字参照を処理します。HTML アンエスケープと同じロジックです。
JavaScript:エスケープは特殊文字を JavaScript エスケープシーケンスに変換します:\n \t \\ \" \' \xHH \uHHHH \u{H...}。JavaScript 文字列リテラルを動的に生成するときに使ってください。
アンエスケープは JavaScript エスケープシーケンス(\n \t \xHH \uHHHH など)をリテラル文字に戻します。\u{H...} コードポイントエスケープを含む、すべての標準 ECMAScript エスケープシーケンスを処理します。
JSON:エスケープは \" \\ と制御文字を RFC 8259 に従った JSON セーフなエスケープシーケンスに変換します。テキストを JSON 文字列値の中に埋め込むときに使ってください。
アンエスケープは JSON エスケープシーケンス(\" \\ \n \uXXXX など)をリテラル文字に戻します。RFC 8259 に従い、有効な JSON エスケープシーケンスのみをデコードします。
CSV:エスケープは RFC 4180 に従います:カンマ、二重引用符、改行を含むフィールドを二重引用符で囲みます。内部の二重引用符は二重化されます(" → "")。
アンエスケープは RFC 4180 の CSV エスケープの逆です:外側の二重引用符を外し、内部の引用符の二重化を戻します("" → ")。複数行フィールドと引用されたカンマを正しく処理します。
SQL:エスケープはシングルクォートを二重化して(' → '')エスケープします。主要なデータベース(MySQL、PostgreSQL、SQL Server、SQLite)すべてで機能します。これは文字列リテラルのエスケープのみを扱い、動的クエリの SQL インジェクションを防ぐものではありません。
アンエスケープは二重化されたシングルクォート('' → ')を元に戻します。標準的な SQL 文字列リテラルエスケープの逆です。
Java:エスケープは特殊文字を Java エスケープシーケンスに変換します:\n \t \r \\ \" \' \uXXXX など。Java 文字列リテラルを生成するときに使ってください。
アンエスケープは Java エスケープシーケンスをリテラル文字に戻します。\uXXXX Unicode エスケープを含む、すべての標準 Java エスケープシーケンスを処理します。
.Net(C#):エスケープは特殊文字を C# エスケープシーケンスに変換します:\n \t \r \a \v \0 \\ \" \uXXXX \UHHHHHHHH など。C# 文字列リテラルを生成するときに使ってください。
アンエスケープは C# エスケープシーケンスをリテラル文字に戻します。\UHHHHHHHH UTF-32 と可変長 \xHH... 16 進エスケープを含む、すべての標準 C# シーケンスを処理します。
エスケープは文脈に依存する

同じテキストも、行き先によって違うエスケープが必要です:HTML 本体は < & >、二重引用符属性はさらに "、JavaScript 文字列はバックスラッシュエスケープ、URL はパーセントエンコーディング。間違った文脈へのエスケープこそ、マークアップインジェクションと XSS が起きる仕組みです。

経験則:行き先ではなくソースに対して…ではなく、ソースではなく行き先に対してエスケープする — データがどこから来たかではなく、どこへ行くかで決めてください。