Unicode エスケープ/アンエスケープ
テキストを貼り付けるとエスケープがすぐに表示されます。\u4F60 を貼り付ければ文字に戻せます。ボタン不要、アップロードなし。
エスケープ結果
使い方
- エスケープまたはアンエスケープを選びます。入力欄はそのまま保持されるため、同じテキストを入力し直さずに両方の視点で確認できます。
- エスケープ:テキストを入力または貼り付けると、エスケープがすぐに表示されます。対象言語が使う構文を選びます。\uXXXX(Java、JSON、.properties — BMP より上の文字は UTF-16 サロゲートペアになります)、\u{X}(ES6 JavaScript、Rust、Swift、Ruby、PHP)、\UXXXXXXXX(Python、C、Go、C#)、U+XXXX(Unicode 標準の表記)です。
- 範囲を選びます。「非 ASCII のみ」(既定)は U+007F より上をすべてエスケープし、ASCII、スペース、改行はそのままにします。「すべての文字」はすべてのコードポイントをエスケープし、出力を純粋な ASCII にします。
- アンエスケープ:エスケープを含むテキストを貼り付けると文字に戻ります。結果の上の行に、デコードした文字数と、読み取れなかった断片がある場合はその内容と位置が表示されます。
例
入力
Café "naïve" 😀
エスケープ結果
Caf\u00E9 "na\u00EFve" \uD83D\uDE00
「é」には ASCII の形がないため \u00E9 になります。「😀」は U+1F600 で BMP より上にあるため、\uXXXX 構文ではサロゲートペア \uD83D\uDE00 として書き出します。\u{X} に切り替えると同じテキストは Caf\u{E9} "na\u{EF}ve" \u{1F600} になり、\UXXXXXXXX では …\U0001F600、U+XXXX では CafU+00E9 "naU+00EF ve" U+1F600 になります(é の後の二重スペースは区切りと元のスペースです)。いずれもアンエスケープにそのまま貼り戻せます。
ルール・制限・既知の問題
- 認識する構文は 4 つだけです:\uXXXX(16 進数ちょうど 4 桁)、\u{X}(1〜6 桁)、\UXXXXXXXX(ちょうど 8 桁)、U+XXXX(1〜6 桁、大文字の U+)。%uXXXX、\x{X}、CSS の \X、\N{NAME} には対応していません。你 などの HTML 参照は HTML エンティティツールの対象です。
- \uXXXX は 4 桁固定です。\u12 や \u12345 は \uXXXX として読まれません。\u12345 は U+1234 の後にリテラルの「5」としてデコードされます。1〜6 桁が必要な場合は \u{…} と書いてください。
- \uXXXX には文字境界がありません。\u4F60abc は 你abc とデコードされ、U+4F601 は U+4F60 の後に「1」ではなくコードポイント U+4F601(5 桁、有効)として扱われます。
- U+XXXX ではコードポイントの後の半角スペース 1 つは区切りであり、内容ではありません。U+4F60 hello は 你hello とデコードされます。このツールはすべての U+ トークンの後に(末尾を除き)スペースを書き出すため、自身の出力は往復できます。スペースのない手書きのトークンは後続の 16 進数と連結され、認識できないものとして数えられます。
- サロゲートペアが現れるのは \uXXXX 構文だけです。これは Java/JSON の表現だからです。\u{1F600}、\U0001F600、U+1F600 はコードポイントを直接書きます。低サロゲートが続かない高サロゲートは書かれたまま残し、認識できないものとして数えます。「�」で置き換えることはありません。
- U+10FFFF を超えるコードポイントやサロゲート範囲自体も同様に拒否します。書かれたまま残して数え、黙って置き換えることはありません。
- 「非 ASCII のみ」の範囲はリテラルのバックスラッシュをエスケープしません。テキストにすでに \u4f60 が含まれていると、アンエスケープはそれをエスケープとして読み取ります。この曖昧さは範囲に固有のもので、バックスラッシュが重要な場合は「すべての文字」を選んでください。
- デコードは 1 回のみです。\u005Cu4F60 は 你 ではなくリテラルテキスト \u4F60 になります。2 層必要な場合はもう一度貼り付けてください。
- 有効な制御文字はそれ自体としてデコードされます。\u0000 は U+0000 になります(不可視ですがエラーではありません)。そのため出力に見えない文字が含まれる場合があります。
- \n や \t などの文字列エスケープは通常のテキストとして残し、数えません。完全な JSON 文字列リテラルは別の関心事です。URL、HTML、Base64 のエンコードも別のツールです。
- 最大 100,000 文字です。それを超えると切り詰めた結果ではなくエラーを表示します。20,000 文字を超えると、入力が止まってから約 0.6 秒後に結果が更新されます。
- ファイルのアップロード、履歴、入力を含む共有リンクはありません。すべてブラウザー内で動作し、テキストがページの外に出ることはありません。
関連ツール
テキストをエスケープ・アンエスケープした後によく使われるツールです。