Unicode®エスケープ変換
通常の文字列とUnicode®エスケープ(\uXXXX)を相互変換します。日本語・絵文字を含む複数行のテキストをまとめて変換できます。
入力例
結果
入力して「変換」を押してください。
このツールでできること
Unicodeエスケープの変換にまつわる主な機能です。
- 通常の文字列をUnicodeエスケープ(\uXXXX)へ変換できます(Encode)
- Unicodeエスケープを通常の文字列へ戻せます(Decode)
- 日本語・記号・絵文字(サロゲートペア)を正しく扱えます
- JavaScriptのコードポイント表記\u{...}もDecode対象です
- 実際の改行や入力順を可能な限り維持します
- 不正なエスケープは自動修正せず、明確にエラー表示します
手順を見る
- モードで「エンコード」または「デコード」を選びます既定は「エンコード」です
- 変換したい文字列を入力します
- 「変換」を押します
- 結果を確認し、必要なら「コピー」で結果をコピーします
こんなときに使えます
こんな場面でUnicode®エスケープ変換が役立ちます。
利用シーンを見る
- ログやAPIレスポンスに含まれる\uXXXXが何の文字か確認したいとき
- 日本語・記号・絵文字をUnicodeエスケープ表現へ変換して設定ファイル等に使いたいとき
- JavaScriptソースの\u{...}表記を実際の文字として確認したいとき
- 絵文字がサロゲートペアとして正しく変換されるか確認したいとき
- 不正なエスケープが含まれていないかチェックしたいとき
Unicode®エスケープの仕組みと注意点
詳しい解説を見る
Unicodeエスケープ(\uXXXX)とは
\uXXXXは、1つの文字をUTF-16のコードユニット(16進数4桁)で表す記法です。JavaScript・JSON・Java・設定ファイル・ログ等で、日本語や記号を安全な文字だけで表現するために使われます。本ツールはこの記法と、実際の文字列との相互変換を行います。
絵文字等(non-BMP文字)とサロゲートペア
絵文字のようにUnicodeのコードポイントが大きい文字(non-BMP文字)は、1つの\uXXXXでは表せません。UTF-16の仕組みに従い、2つの\uXXXX(サロゲートペア)を組み合わせて1文字を表します。本ツールはUnicodeのコードポイントとUTF-16のコードユニットを区別して扱い、サロゲートペアも正しく変換します。
対応している形式・対応していない形式
Decode(変換して読む)では、\uXXXX(サロゲートペアを含む)と、JavaScriptのコードポイント表記\u{...}に対応しています。Encode(変換して作る)の出力は常に\uXXXX形式(サロゲートペアを含む)です。\xXX・U+XXXX表記・HTML数値文字参照(あ等)には対応していません。
不正なエスケープは自動修正せずエラーになります
桁数が足りない、16進数として不正、対になっていないサロゲート等、不正なエスケープを含む入力は、結果を一切表示せずエラーとして扱います。一部だけを変換した不完全な結果を表示したり、別の文字へ自動的に読み替えたりすることはありません。
JSON・JavaScriptのパーサーではありません
本ツールはJSON文字列やJavaScriptのソースコードを解析するパーサーではなく、\uXXXX等のエスケープ表記だけを対象にした変換ツールです。クォート(")は特別扱いせず、通常の文字としてそのまま扱います。
Unicode正規化(NFC等)は行いません
本ツールはNFC・NFD等のUnicode正規化を行いません。Encodeは入力された文字をそのままエスケープし、Decodeもエスケープを解釈した結果をそのまま出力します。ただし、Encodeの結果に含まれるASCII部分がたまたまUnicodeエスケープの表記(\uXXXX等)と同じ並びになっている場合、その部分をDecodeすると別の文字として解釈されるため、任意の文字列についてEncode→Decodeが元の文字列と一致することを無条件に保証するものではありません。
よくある質問
どんな形式のUnicode®エスケープに対応していますか?
Decode(読む)は\uXXXX(サロゲートペアを含む)とJavaScriptのコードポイント表記\u{...}に対応しています。Encode(作る)の出力は常に\uXXXX形式(サロゲートペアを含む)です。\xXX表記・U+XXXX表記・HTML数値文字参照には対応していません。
絵文字も変換できますか?
可能です。絵文字のようなnon-BMP文字は、UTF-16の仕組みに従い2つの\uXXXX(サロゲートペア)へ変換されます。Decode時もサロゲートペアを正しく1文字へ結合します。
すべての文字がエスケープされますか?(英数字も\uXXXXになりますか?)
いいえ。Encodeでは非ASCII文字(日本語・絵文字・一部の記号等)のみをエスケープします。英数字やASCII記号はそのまま出力されます。
実際の改行やタブを含む文字列をEncodeするとどうなりますか?
実際の改行やタブはエスケープされず、そのまま出力に残ります。改行コードの種類(LF/CRLF/CR)自体を変換したい場合は、既存の改行コード確認・変換ツールをご利用ください。
桁数が足りない、または壊れたエスケープを入力するとどうなりますか?
結果を一切表示せず、エラーとして扱います。一部だけを変換した不完全な結果を表示したり、自動的に別の文字へ読み替えたりすることはありません。
"あ"のようにクォートで囲んだ文字列も正しく扱えますか?
本ツールはJSON文字列やJavaScriptのソースコードを解析するパーサーではないため、クォートは特別扱いせず通常の文字としてそのまま出力に残ります。
Encodeした結果をDecodeすると、必ず元の文字列に戻りますか?
多くの場合は元に戻りますが、無条件に保証されるわけではありません。本ツールはUnicode正規化(NFC等)を行わないため、Encode/Decode自体は文字を変化させませんが、元の文字列が地の文として\uXXXXのようなUnicodeエスケープの表記そのものを含んでいた場合、Encode後にDecodeするとその部分が別の文字として解釈されることがあります。
入力したデータはサーバーへ送信されますか?
いいえ。変換処理はすべてブラウザ内で完結しており、入力内容がサーバーへ送信されることはありません。