onlinetools.dev

文字列エスケープ / アンエスケープ

JSON・JavaScript・Java・XML・SQL・CSV 向けに文字列をエスケープ / 復元

ローカル実行
loading…
このツールについて

クォートを含む複数行の文字列を、JSON の値、JavaScript のリテラル、Java の文字列、XML のテキストノード、SQL のリテラル、CSV のセルの中に貼り付けられる形に変換します — そして、ログファイルでエスケープ済みのテキストを見つけて読みたいときには、その逆を行います。6 つの方言、双方向対応です。

各方言は最小公倍数ではなく、実際の仕様に従います。JSON は制御文字を \uXXXX でエスケープし、JavaScript はさらにシングルクォートとバッククォートをエスケープし、Java は非 ASCII を UTF-16 の \u シーケンスにエンコードし、SQL はシングルクォートを二重にし、CSV は RFC 4180 に従って囲んで二重にし、XML は 5 つの定義済みエンティティを使います。アンエスケーパーは \x、\u、\u{…} の形式を理解し、不正なシーケンスを位置付きで報告します。

エスケープされた文字列は、接続文字列、トークン、クエリの断片であることが少なくありません。これはローカルで動きます — 気兼ねなく貼り付けてください。

よくある質問

JSON 設定ファイルにはどの方言が必要ですか?
JSON です。RFC 8259 の要求どおりにダブルクォート、バックスラッシュ、制御文字をエスケープし、Unicode は読めるまま残します。出力はどんな JSON 文字列値にもそのまま収まります — 外側の引用符は付かないので、そこはあなたの担当です。
JSON 方言と JavaScript 方言の違いは何ですか?
JavaScript はさらにシングルクォートとバッククォートをエスケープするため、JS の 3 つのクォートスタイルのどれでも結果を安全に使えます。JSON が必要とするのはダブルクォートの処理だけです。アンエスケープは両方に加え、JSON が定義していない \x や \u{…} 形式も受け付けます。
SQL エスケープをすれば、ユーザー入力を連結しても安全ですか?
正しい SQL 文字列リテラル(引用符が二重化されたもの)は生成されますが、エスケープしてから連結するのは、信頼できない入力に対しては依然として誤ったパターンです — パラメーター化クエリを使ってください。このツールはフィクスチャ、マイグレーション、デバッグのためのもので、インジェクション対策ではありません。
なぜ文字列のアンエスケープが失敗するのですか?
バックスラッシュの後に、定義されたエスケープ以外のもの(\q や、途中で切れた \u12)が続くと不正な形式となり、エラーが問題のインデックスを名指しします。テキストにリテラルの Windows パスが含まれるなら、まずエスケープしてください — C:\temp は変装したタブ文字です。
関連ツール