Unicode エスケープと復元
エンコード・暗号処理はすべてブラウザ内で完結します。データは送信されません
日本語や中国語、emoji などの非 ASCII 文字をエスケープ表記に変換し、逆にエスケープを文字へ戻します。3つの形式にはそれぞれ使いどころがあります:\uXXXX は JS / Java / C# の文字列リテラルや .properties ファイルで、\xXX は UTF-8 のバイト列を表し、Python・C・PHP でよく見る書き方です(\xE6\x97\xA5 が「日」です);&#xXXXX; は HTML の数値実体参照です。emoji は標準のサロゲートペア \uD83D\uDE00 として出力し、Java や .properties ファイルが認識しない \u{1F600} は使いません。エンコードとデコードを厳密に逆の関係にするため、バックスラッシュと & も併せてエスケープします —— そうしないと、元のテキストに元からある \u0041 がデコード時にエスケープシーケンスと解釈され、黙って文字 A に変わってしまいます。
機能
- 双方向変換:日本語・中国語・emoji・非 ASCII 文字 ⇄ エスケープ表記
- 3つの形式:\uXXXX(JS / Java)、\xXX(UTF-8 バイト)、&#xXXXX;(HTML 数値実体参照)
- デコードは3つの形式を同時に認識し、1つのテキストに混在していても復元できます
- emoji は標準のサロゲートペア \uD83D\uDE00 で出力。Java や .properties ファイルでそのまま使えます
- エンコード時にバックスラッシュと & も併せてエスケープし、「デコード(エンコード(x)) === x」を厳密に成立させます
- デコードは \u{1F600} と \U0001F600 の2つのコードポイント表記も認識します
- 認識できないエスケープはそのまま保持し、エラーも出さず捨てもしません
使い方
- 方向を選びます:エンコードかデコード
- エンコード時は目的のエスケープ形式を選びます
- 内容を入力欄に貼り付けると、結果がリアルタイムで表示されます
- 「コピー」で結果を取り出せます
よくある質問
- \xXX 形式で日本語が3バイトになるのはなぜですか?
- \xXX が表すのは 1 バイトであり、日本語は 1 バイトに収まらないため、まず UTF-8 で符号化する必要があるからです:日 = E6 97 A5 なので \xE6\x97\xA5 と書きます。これはまさに Python の bytes や C の文字列リテラルでの表し方です。デコードも同じ規則で処理するので、復元できるかどうかは、そのバイト列自体が有効な UTF-8 かどうかで決まります。
- 出力に \u0026 や \u005C が増えるのはなぜですか?
- エンコードとデコードを厳密に逆の関係にするためです。元のテキストには \u0041 や 中 が元から書かれていることがあり、バックスラッシュと & をエスケープしないと、デコード時にそれらを本物のエスケープシーケンスとみなし、黙って誤った結果を返してしまいます。エスケープ後の出力は JS・Java・.properties のいずれでも元の文字に正しく復元されます。
- emoji が1つではなく2つの \u になるのはなぜですか?
- U+1F600 は基本多言語面(BMP)の外にあり、UTF-16 ではサロゲートペア \uD83D\uDE00 として書く必要があります。Java や .properties ファイルはこの書き方しか認識せず、\u{1F600} は認識しません。そのためエンコードはペアの形で出力し、逆にデコード時は隣り合うペアのエスケープが自動で1文字に結合されます。
- デコード時に壊れたエスケープがあるとエラーになりますか?
- いいえ。3つの形式を同時に認識し、認識できないもの(途中で切れた \uD8、範囲外の �、\n のような他言語のエスケープ)はすべてそのまま残します。実際のテキストに無関係なエスケープが数個混じっているのは普通のことで、それで全体をエラーにすると、正常な部分まで受け取れなくなってしまいます。
関連ツール
HTML 実体参照
エンコード・暗号< > & と引用符を HTML 実体参照に変換し、文字へ戻します。デコードは1回だけで、&lt; は山括弧ではなく < になります。すべてブラウザ内で処理します。
Base64 変換
エンコード・暗号テキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
簡体字・繁体字変換
テキスト処理中国語を簡体字と繁体字の間で相互変換します。常用語は語単位で置換し、残りは最も一般的な字形を採るため、一部は人の確認が必要です。
URL エンコード
エンコード・暗号日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。
JWT デコード
エンコード・暗号JWT を header・payload・signature に分け、iat や exp を読める日時に変換します。署名は検証せず、その旨を出力に明記します。すべてブラウザ内で処理します。
ハッシュ計算
エンコード・暗号MD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算します。日本語や中国語も UTF-8 バイトで計算し openssl や sha256sum と一致。ブラウザ内で処理します。