シェル・正規表現・SQL・CSV・JSON 文字列エスケープ/アンエスケープ
プログラミング言語や形式ごとに異なる引用符・特殊文字のエスケープを、ブラウザ上でまとめて変換できます。エスケープとアンエスケープの両方向に対応しています。HTMLやJavaScript文字列の変換は HTML/JS文字列エスケープ を、URLの変換は URLエンコード/デコード をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
注意事項
- SQLのエスケープは学習・表示用です。本番のアプリケーションでは、文字列を連結せず、プレースホルダー(パラメータ化クエリ)を使ってください。エスケープだけではSQLインジェクションを完全には防げません。
- 結果は文字列の中身に対する変換です。シェルは全体を単一引用符で囲みます。SQL・JSONは外側の引用符を付けないので、必要に応じて自分で囲んでください。
- シェルのエスケープはPOSIX sh・bash・zsh向けです。Windowsのコマンドプロンプトや PowerShell では規則が異なります。
- SQLの方式はデータベースで異なります。標準SQL・PostgreSQL・SQLiteなどは「''」方式、MySQLはバックスラッシュ方式も使えます(MySQLでもNO_BACKSLASH_ESCAPES設定時は「''」方式のみ)。
- CSVは入力全体を1つのフィールドとして扱います。カンマ・二重引用符・改行を含むときだけ二重引用符で囲みます。
用語解説
エスケープ
文字列の中で特別な意味を持つ文字(引用符、バックスラッシュ、正規表現のメタ文字など)を、ただの文字として扱わせるための書き換えです。方法は言語や形式ごとに異なります。
SQLインジェクション
入力値がSQL文の一部として解釈されてしまい、意図しない命令を実行される攻撃です。根本的な対策は、値をSQL文と分けて渡すプレースホルダー(パラメータ化クエリ)を使うことです。
メタ文字
正規表現で「任意の1文字」(.)や「0回以上の繰り返し」(*)のように、文字そのものではなく特別な機能を表す文字です。文字として検索したいときはバックスラッシュでエスケープします。
よくある質問
SQLのエスケープだけでSQLインジェクションは防げますか?
防げません。このツールのSQLエスケープは学習・表示用です。本番のアプリケーションでは、SQL文を文字列連結で作らず、プレースホルダー(パラメータ化クエリ)で値を渡してください。
SQLの「標準」と「MySQL」の方式はどう違いますか?
標準SQLは単一引用符を2つ重ねて('')表します。MySQLはそれに加えて、バックスラッシュ(\'、\n、\\ など)も使えます。使うデータベースに合わせて選んでください。
シェルのエスケープはなぜ全体を単一引用符で囲むのですか?
単一引用符の中では、$・`・バックスラッシュなどがすべて文字として扱われるためです。文字列中の単一引用符だけは「'\''」のように引用符を一度閉じて書き直します。bash・zshなどのPOSIX系シェル向けです。
正規表現のエスケープで、どの文字が対象ですか?
. * + ? ^ $ { } ( ) | [ ] \ / - が対象です。この結果を new RegExp() に渡すと、元の文字列にそのまま一致するパターンになります。
JSON文字列のアンエスケープで両端の二重引用符は必要ですか?
どちらでも構いません。"..." のように囲まれていれば外側の引用符を取り除いてから変換します。囲まれていなくても、中身だけを入力して変換できます。
このページをシェア
