使い方
- テキストに文を貼り付け、操作でエスケープか解除を選びます。
- 形式で文字列の種類を選びます。例えば JSON の文字列 や SQL の文字列リテラル です。
- 引用符で囲む形式では、引用符を付けるにチェックを入れると引用符付きのテキストが得られ、チェックを外すと内容だけが得られます。
- 結果を読みます。テキストをエスケープした場合は、エスケープした文字の表も読みます。
エスケープとは
プログラム、ファイル、問い合わせの中の文字列は、一部の文字しか直接持てません。エスケープは、それ以外の文字と、文字列を終わらせてしまう文字を、形式が同じ文字として読み戻す並びに置き換えます。形式ごとに並びが決まっているため、1つの文字を複数の書き方で表すこともあり、解除はその並びを文字に読み戻します。
- JSON と JavaScript はバックスラッシュを使うため、改行は \n と書かれます。
- HTML と XML はアンパサンドと名前とセミコロンを使うため、アンパサンドは & と書かれます。
- CSV と SQL は、フィールドや文字列を終わらせる文字を重ねて書くため、SQL の単一引用符は2つの単一引用符と書かれます。
形式ごとの規則
- JSON の文字列:RFC 8259の7節。引用符、バックスラッシュ、制御文字をエスケープし、4桁の16進数の \u エスケープを読みます。
- JavaScript の文字列:ECMA-262の文字列リテラル。二重引用符で囲んだ文字列では、二重引用符だけをエスケープする必要があり、古い8進数のエスケープは拒否されます。
- HTML の属性値:5つの文字 & < > " ' を参照として書きます。このページが知らない名前(é など)は、そのまま残ります。
- XML のテキスト:同じ5つの文字で、アポストロフィは ' と書きます。XML 1.0では制御文字を書く方法がないため、そのような文字は拒否されます。
- CSV のフィールド:RFC 4180。コンマ、引用符、改行を含むフィールドは二重引用符で囲まれ、その中の引用符はそれぞれ2つ重ねられます。
- SQL の文字列リテラル:PostgreSQL のマニュアル。単一引用符は2つ重ねられます。標準の SQL では、バックスラッシュは特別な意味を持ちません。
- 正規表現:ECMA-262が挙げる構文文字の前にバックスラッシュを付けます。解除では、クラスを表す \d などのエスケープはそのまま残します。
- C# または Java の文字列:両方の言語が読むエスケープです。改行は \n、そのほかの制御文字は \u のエスケープで書きます。
- シェルの単一引用符の文字列:POSIX。単一引用符の中では何も特別ではないため、引用符は '\'' と書きます(引用符を閉じ、それをエスケープし、また開く)。
間違えやすい点
- テキストを2回エスケープすると、バックスラッシュが2倍になるため、最初のエスケープで \n になったものが \\n と表示されます。
- JSON の文字列を JavaScript のファイルの中に置く場合、ファイルの中で独自のエスケープが必要です。アプリケーションの中の SQL の文字列では、その言語のエスケープも必要になる場合があります。
- これらのどの形式でも、絵文字の半分は書けないため、ページは拒否します。その文字をもう一度入力してください。
例:引用符、改行、バックスラッシュを含む JSON の文字列
テキスト「彼は "hi" と言い、& で去った。」、改行、そして「パス: C:\temp」には、引用符が2つ、改行が1つ、バックスラッシュが1つあります。JSON の文字列として引用符で囲むと、"彼は \"hi\" と言い、& で去った。\nパス: C:\\temp" になります。表は、別の書き方になった文字の回数を数えています。
| 文字 | 書き方 | 回数 |
|---|---|---|
| " | \" | 2 |
| U+000A | \n | 1 |
| \ | \\ | 1 |
よくある質問
テキストはサーバーに送られますか?
いいえ。エスケープと解除はお使いのブラウザの中で行われるため、パスワードやトークンを含むテキストは、お使いの機器の外に出ません。
JSON の解除で \x41が拒否されるのはなぜですか?
JSON には \x のエスケープがありません。JSON では \u と4桁の16進数を使うため、文字 A は \u0041と書きます。JavaScript の文字列は \x41を受け付けるため、2つの形式は別々に挙げています。
JavaScript の文字列で、単一引用符はエスケープされないのはなぜですか?
二重引用符で囲んだ文字列では、二重引用符だけをエスケープする必要があります。引用符を付けるオプションを有効にすると、結果は二重引用符で囲まれるため、単一引用符はそこでは普通の文字です。
SQL でバックスラッシュがエスケープされないのはなぜですか?
標準の SQL では、文字列定数の中でバックスラッシュは特別な意味を持ちません。MySQL のように既定で特別扱いするデータベースもあるため、SQL の文字列にバックスラッシュを書く前に、お使いのデータベースの規則を確かめてください。
「引用符を付ける」は何を変えますか?
オンにすると、エスケープされたテキストは、JSON の二重引用符や SQL の単一引用符など、形式の引用符で囲まれます。オフにすると内容だけが得られるため、すでに引用符で囲まれた文字列の中に入れる場合などに使えます。
テキストに引用符がないのに、CSV の結果に引用符が付くのはなぜですか?
RFC 4180は、コンマ、引用符、改行を含むフィールドを引用符で囲むよう求めています。普通のフィールドは、引用符なしでそのまま書かれます。
XML で制御文字が拒否されるのはなぜですか?
XML 1.0では、U+0001のような文字は、参照としてさえ許されないため、このページでも書けません。先にテキストから取り除いてください。
出典
- RFC 8259:JSON データ交換フォーマット、7節(IETF)(英語)
- ECMA-262:ECMAScript 言語仕様、文字列リテラルと正規表現の構文(英語)
- XML 1.0(第5版)、4.6節 定義済みのエンティティ(W3C)(英語)
- RFC 4180:CSV ファイルの共通形式と MIME タイプ(IETF)(英語)
- PostgreSQL マニュアル:文字列定数(sql-syntax-lexical)(英語)
- POSIX Shell and Utilities、2.2.2節 単一引用符(The Open Group)(英語)
- Java 言語仕様、3章:リテラルとエスケープシーケンス(Oracle)(英語)
- C# 言語仕様、字句構造(Microsoft)(英語)
- MySQL マニュアル:文字列リテラルとバックスラッシュのエスケープ文字(英語)
数値と文章の最終確認日:2026年11月10日火曜日。