文字列エスケープとは?JSON・正規表現・SQL・CSVの規則を実例で解説
公開日:2026年9月23日 更新日:2026年9月15日 運営:シルギア(Analyzegear, Inc.) 対象ツール:文字列エスケープ変換
プログラムやデータ形式には、それぞれ「特別な意味を持つ記号」があります。JSONの二重引用符、正規表現のドットやかっこ、SQLのシングルクォートなどです。これらをそのまま文字列に混ぜると、構文が壊れたり、値の境目が崩れて意図しない動作を招いたりします。エスケープとは、こうした記号を「ただの文字」として扱わせるための書き換えです。このツールは、よく使う5つの対象(JSON文字列・正規表現・バックスラッシュ/改行・SQL・CSV)について、エスケープと、その逆のアンエスケープを相互に変換します。処理はすべてブラウザ内で完結し、入力は外部に送信されません。
エスケープとアンエスケープの考え方
エスケープは「記号の力を打ち消して、見た目どおりの文字にする」操作です。たとえばJSONの中で二重引用符「"」は文字列の終わりを表しますが、文字としての「"」を書きたいときは「\"」と表記します。アンエスケープはその逆で、エスケープ済みの文字列を元の文字に戻します。ツールでは「方向」でこの2つを切り替えます。同じ入力でも対象によって結果はまったく異なるため、まず「どの形式に埋め込む文字列なのか」を決めてから対象を選ぶのがコツです。
JSON文字列のエスケープ
「JSON文字列」は、JavaScript標準の JSON.stringify と同じ規則で変換します。「"」と「\」をエスケープし、改行は \n、タブは \t、その他の制御文字は \uXXXX の形にします。囲みの二重引用符は付けず、文字列リテラルの「中身」だけを返すので、既存コードの "..." の中にそのまま貼り付けられます。
具体例で見ましょう。改行を1つ含む3文字「a・改行・b」をエスケープすると、バックスラッシュとnを含む a\nb という4文字になります。Windowsのパス「C:\path」なら、バックスラッシュが二重化されて C:\\path です。アンエスケープはこの逆で、\n を実際の改行に、\\ を1個のバックスラッシュに戻します。壊れたエスケープや不正な \u が含まれると解釈できず、注意が表示されます。
正規表現のエスケープとインジェクション回避
「正規表現」は、. * + ? ^ $ { } ( ) | [ ] \ という特殊文字の前にバックスラッシュを付けて「ただの文字」に変えます。たとえば a.b(c) をエスケープすると a\.b\(c\) となり、ドットやかっこを文字どおり検索できます。エスケープ前の「.」は任意の1文字にマッチし、「(」はグループの開始と解釈されてしまいますが、変換後はすべて字面どおりに扱われます。
これが重要になるのは、ユーザーが入力した文字列を検索パターンにそのまま埋め込むときです。エスケープを怠ると、入力中の「.」や「*」が正規表現の記号として働き、意図しない一致や構文エラーを起こします。これは「正規表現インジェクション」と呼ばれ、検索機能の誤動作やサービス停止の原因にもなります。外部から受け取った文字列をパターンに使うなら、まずこのエスケープを通すのが定石です。
バックスラッシュ・改行/SQL/CSVの規則
「バックスラッシュ/改行」は、実際の改行・タブ・CR・バックスラッシュと、\n \t \r \\ という記法を相互変換します。たとえば「line1・改行・line2・タブ・tab」をエスケープすると line1\nline2\ttab という1行の文字列になります。複数行のログや設定値を1行にまとめたり、逆に1行の \n を実際の改行に展開して読みやすくしたりする用途に向きます。
「SQL」はシングルクォート「'」を「''」に二重化する標準SQLのエスケープです。たとえば It's a test は It''s a test になります。ただしSQLでは値を文字列に直接埋め込むこと自体を避け、プレースホルダ(バインド変数)やORMの安全なAPIを第一に使うべきです。この二重化はあくまで補助であり、手作業で値を確認したいときの参考用途にとどめてください。
「CSV」はフィールド全体を「"」で囲み、内部の「"」を「""」に二重化します。カンマを含む Tokyo, Japan は "Tokyo, Japan" に、引用符を含む He said "hi" は "He said ""hi""" になります。これはRFC 4180の方式で、カンマ・改行・引用符を含む値でも1フィールドとして安全に表せます。
なぜエスケープが必要か
エスケープの目的は大きく2つあります。1つは「コードやデータへの安全な埋め込み」です。プログラムは記号を構文として読むため、文字として扱いたい記号を打ち消しておかないと、値の境目が崩れて全体の構造が壊れます。もう1つは「入力由来の記号による事故の防止」です。正規表現インジェクションのように、外部入力に含まれる記号がそのまま機能として解釈されると、意図しない挙動やセキュリティ上の問題につながります。エスケープは、こうした「データを誤ってコードとして解釈してしまう」事故を、あらかじめ断ち切るための処理です。
使い方とよくある失敗
使い方はシンプルです。まず「対象」で形式を選び、「方向」でエスケープかアンエスケープかを決め、テキストを貼り付けると結果がリアルタイムで表示されます。「結果をコピー」で書き出せます。よくある失敗は、対象の取り違えです。JSON用のエスケープを正規表現に使う、といった選択ミスは、見た目が似ていても結果が食い違います。アンエスケープで「解釈できません」と出るときは、入力がその対象のエスケープ済み文字列として成り立っていない合図なので、対象と方向を見直してください。SQLについては、二重化だけで安全とは考えず、プレースホルダの利用を前提にすることを重ねて強調しておきます。安全性が問われる場面では、各言語・DBの公式ドキュメントや専門家の情報を優先してください。