エンコードとエスケープ

文字列エスケープ引用符と文字の中身を確認

変換先の構文を選び、文字列の表記と実際の値を確認します。

文字列エスケープ

入力

結果

文字ごとの確認

エスケープ時は元の値、復元時は復元値を調べます。コードポイントごとに表示し、孤立サロゲートは別途示します。

変換はこのブラウザー内で行い、入力内容は送信しません。

変換オプション

構文を明示的に選択してください。JSONは厳密な文字列構文、JavaScriptは対応範囲を限定した構文です。Unicodeは選択した表記のみを受け付け、一度に一層を復元します。

入力は1,048,576 UTF-16単位、出力は4,194,304単位までです。貼り付け時に改行が変わる場合があります。

文字を入力するか、サンプルを読み込んでください。

現在の結果を次の入力としてプレビューし、適用後に方向を切り替えます。一度だけ元に戻せます。 結果が入力上限の1,048,576単位を超える場合、逆変換は使えません。

文字列エスケープは、ログから取り出した値をJSONへ埋め込むときや、ソース中の文字列を読みやすく戻すときに役立ちます。画面に見えるバックスラッシュとnの組み合わせは、実際の改行とは異なります。

JSONエスケープとJavaScriptの文字列構文は同じではありません。まず引用符付きか内容のみかを選び、アンエスケープを一層ずつ実行してください。文字一覧では、見た目だけでは区別しにくい制御文字も確認できます。

文字列エスケープを使う理由

引用符を推測しない

文字列エスケープでは、JSONはダブルクォート、JavaScriptは選択した引用符を使います。内容のみのモードでも構文検査は行うため、引用符を外しただけで不正な文字列が通ることはありません。

元の引用符と改行がエスケープ表記に変わり、外側に引用符を付ける図。

絵文字の長さを読み解く

一つの絵文字が一つのコードポイントと二つのUTF-16単位になる場合があります。文字一覧はこの違いを表示し、対にならないサロゲートも置換せずに示します。

絵文字から上段のUTF-16単位D83DとDE00、下段のコードポイント1F600へ対応させた図。

構文を選んでから変換する

01

引用符の有無を合わせる

初期設定は引用符付きのJSON文字列です。内容だけを貼り付けた場合は「内容のみ」を選びます。JavaScriptの復元では、選択した引用符と入力の外側の引用符を合わせてください。

02

更新のタイミングを選ぶ

自動変換は編集後350ミリ秒で実行します。無効にすると変換ボタンが表示され、Ctrl/Cmd+Enterも使えます。入力や設定を変更すると、変換が成功するまで古い結果の書き出しを止めます。

03

置換内容を確認して適用する

サンプル、クリア、逆変換はプレビュー後に適用します。一度だけ前の状態に戻せます。結果は最大20,000 UTF-16単位、文字一覧は最初の50項目から最大100項目まで表示します。

表記と文字の値を調べる機能

読みやすさを保つ出力

JSONとJavaScriptでは非ASCII文字をそのまま残すのが初期設定です。必要な場合だけ非ASCIIエスケープを有効にできます。結合文字などのUnicode正規化は行いません。

Unicodeの二つの表記

UnicodeモードはASCIIも含めて全文字を変換します。UTF-16単位ごとの\uXXXXか、コードポイントごとの\u{…}を選択できます。復元時も選択した表記だけを受け付けます。

入力上のエラー位置

不完全なエスケープなど、位置がわかるエラーは行と列を表示します。結果の一部だけを返したり、不正な文字を自動修復して成功扱いにしたりしません。

元の単位を残すレポート

JSONレポートには入力、出力、文字列の値、設定、最大100項目の文字プレビューを含めます。孤立サロゲートもエスケープ表記で保存するため、元のUTF-16単位を保持できます。

受け付ける構文と上限

JSONは単一の文字列
標準エスケープと\uXXXXに対応し、生のC0制御文字、未エスケープのダブルクォート、\xHH、\v、\u{…}は拒否します。引用符付きでは外側のスペース、TAB、CR、LFを許容し、内容のみでは前後を削りません。
JavaScriptは限定した対応範囲
一般的なエスケープ、\xHH、\uXXXX、\u{…}、バックスラッシュによる行継続に対応します。\0の直後に数字は置けません。生のLFとCRは拒否し、U+2028とU+2029は保持します。未知の文字へのエスケープ、八進表記、テンプレート、式は対象外です。
Unicode表記を混在させない
復元時は通常の文字を残しますが、バックスラッシュは選択形式の完全なエスケープでなければなりません。\nなどは無効です。波括弧内の値は10FFFF以下で、孤立サロゲート値も保持します。これはスカラー値だけの形式ではありません。
孤立サロゲートはそのまま保持
結果に孤立サロゲートがある場合、コピーとTXT保存を無効にします。JSONレポートをご利用ください。結果がASCIIのエスケープ表記なら通常どおり書き出せます。貼り付けで改行が変わる場合があります。
表示上限と変換上限は別
入力は1,048,576、出力は4,194,304、レポートは16,777,216 UTF-16単位までです。超過時は全体をエラーにします。20,000単位の結果プレビューや100項目の文字一覧は、元の結果を切り捨てません。
文字列の表示形式だけを扱う
復元は一回につき一層です。JSONオブジェクトの整形、JavaScriptの実行、ファイルの読み込み、URL取得、HTMLの無害化は行いません。文字列の引用だけでHTML内への安全なスクリプト埋め込みを保証するものではありません。

文字列エスケープのよくある質問

JSONではどの文字にエスケープが必要ですか?

ダブルクォート、バックスラッシュ、U+0000〜U+001Fの制御文字です。改行は\nなどで表します。文字列エスケープの初期設定では日本語をそのまま残し、非ASCIIエスケープを有効にした場合に変換します。

引用符を除いたJSON文字列も戻せますか?

「内容のみ」を選べば復元できます。ただし、内容中の引用符や改行にはJSONのエスケープ規則が適用されます。外側の引用符を自動で見つけて除く処理はありません。

JSONのアンエスケープが失敗する原因は?

末尾のバックスラッシュ、桁数が不足した\uXXXX、未エスケープの改行、JavaScript専用の\xHHなどが原因になります。入力が引用符付きか内容のみかも確認してください。

JSON整形との違いは何ですか?

整形はオブジェクトや配列の字下げを調整する操作です。このページは単一の文字列を表記し直します。JSONオブジェクトを解釈したり、その構造を検査したりするツールではありません。

複数行のテキストにも対応しますか?

元の複数行テキストをエスケープすると、改行は\nや\rのような表記になります。復元では選択した構文に従います。JSON文字列の内部に生の改行を貼り付けるとエラーです。

構文の問題が見つかりましたか?

実際の文字列で確かめる

文字列エスケープで改行や引用符を含む短い例を変換し、文字の値を確認してから書き出してください。