Unicodeエスケープ変換(\uXXXX ⇔ 文字)
文字を \u3042 のようなUnicodeエスケープに変換したり、エスケープされた文字列を元の文字に戻したりできます。JSONやJavaScriptのソース、ログに出てくる「\u65e5\u672c\u8a9e」のような文字列の確認に便利です。HTMLの特殊文字(& や <)の変換は HTML/JS文字列エスケープ、URL用のパーセントエンコードは URLエンコード/デコード をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
注意事項
- 「エスケープ → 文字」では、\uXXXX・\u{...}・\UXXXXXXXX・\xXX・U+XXXX・HTML数値参照(&#x...; / &#...;)を形式の指定なしで自動的に判別して元に戻します。
- JavaScript形式では、絵文字などBMP外の文字は \uD83D\uDE00 のようにサロゲートペア(2つの \u)になります。ES6形式なら \u{1F600} の1つで表せます。
- バックスラッシュが2つ続く「\\u3042」は、バックスラッシュ自体のエスケープとして扱い、展開しません。
- \n や \" などの一般的なエスケープシーケンスは対象外です。これらは「HTML/JS文字列エスケープ」で変換できます。
用語解説
Unicodeエスケープ
ソースコードやJSONの中で、文字をコードポイントの16進数で書き表す記法です。\u3042 は「あ」を表します。ファイルの文字コードや環境に左右されず、ASCII文字だけで任意の文字を表せるのが利点です。
サロゲートペア
UTF-16で、U+FFFFを超える文字(絵文字や一部の漢字など)を表すために使う、2つの16ビット値の組です。JavaScriptの \uD83D\uDE00 は、この2つで「😀」を表します。
コードポイント
Unicodeで各文字に割り当てられた番号です。「あ」ならU+3042のように、「U+」に16進数を続けて書きます。
よくある質問
絵文字が \uD83D\uDE00 のように2つに分かれるのはなぜですか?
JavaScriptの \uXXXX は16ビットの値1つを表すため、U+FFFFを超える絵文字などは上位・下位のサロゲートペア2つに分かれます。1つの表記にしたい場合は、ES6形式(\u{1F600})やPython形式(\U0001F600)を選んでください。
ASCII文字(英数字)もエスケープされますか?
初期設定では英数字や記号はそのまま残し、日本語などASCII以外だけを変換します。「変換する文字」を「すべての文字」にすると、英数字や改行もエスケープされます。
「\u65e5\u672c\u8a9e」のような文字列を元に戻すには?
変換方向を「エスケープ → 文字」にして貼り付けてください。\uXXXX・\u{...}・U+XXXX・HTML数値参照などを自動で判別して、文字に戻します。
\n や \" は変換されますか?
いいえ。このツールが扱うのはコードポイントを表す表記だけです。改行やクォートのエスケープは「HTML/JS文字列エスケープ」を使ってください。
このページをシェア
