Skip to content

Unicode 変換ツール

Unicode 変換・デコードツール。どの書き方で貼っても自動判別して読めるテキストに戻し、全表記を一度に出力。ゼロ幅などの不可視文字もあぶり出せます。ブラウザ内で完結し、入力は送信されません。

トラッキングなし ブラウザで動作 無料

処理はすべてブラウザ内で実行されます。入力がアップロード・記録・保存されることはありません。

0 文字
読めるテキスト
結果はここに表示されます
正規化
すべての表記を一度に
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
コードポイント U+XXXX
HTML 10 進 &#NNNNN;
HTML 16 進 &#xXXXX;
URL エンコード %XX
CSS XXXXXX
UTF-8 バイト hex
UTF-16 コードユニット hex
UTF-32 hex
8 進バイト NNN
10 進コードポイント NNNNN
1 文字ずつ
文字 コードポイント UTF-8 UTF-16 用字系 カテゴリ 名前
結果はここに表示されます

クイックリファレンス

文字 コードポイント JavaScript / Java / JSON UTF-8 バイト URL エンコード HTML 10 進
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
リファレンス表の変換結果は、公開前に 2 つの独立した実装で相互に突き合わせています。 — Go Toolsエンジニアリングチーム · Aug 27, 2026

挙動はドキュメントからの推測ではなく、Node、Python、Java、Go と実際のブラウザエンジンで検証しています。

Unicode エスケープとは?

Unicode エスケープは、ASCII だけを使って 1 つの文字を書き表す方法です。文字そのものを運べないシステムを通り抜けさせるために使います。同じ文字でも、書き方は言語ごとにほぼ別物です。JavaScript と JSON は UTF-16 コードユニットごとに 16 進数 4 桁、ES6 と Rust は波括弧にコードポイントをそのまま入れ、Python と Go には 8 桁のワイド形式があり、CSS はバックスラッシュ 1 つで始め、HTML には数値参照と名前付き参照が別にあります。指しているコードポイントはどれも同じです。1 つのテキストが何通りもの姿であなたの手元に届くのは、これが理由です。

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

このコンバーターでできること

どの表記かを自動で判別

エスケープ、波括弧記法、ワイドエスケープ、コードポイント、実体参照、パーセントエンコーディング、バイト列。貼り付ければそのまま判別するので、モードの切り替えは要りません。

混ざった内容を壊さない

変わるのはエンコードされた部分だけです。JSON の記号、Windows のパス、すでにエスケープ済みのバックスラッシュはそのまま残ります。

すべての表記を一度に出力

1 回貼り付ければ対応表が丸ごと出ます。ある言語から別の言語へ移すために 2 回変換する必要はありません。

言語ごとに正しい形式で

BMP の外にある文字は、Python と Go 向けにはワイドエスケープで出力します。この 2 つの言語にサロゲートペアを渡すと失敗するためです。

1 文字ずつ調べられる

各文字のコードポイント、UTF-8 と UTF-16 のバイト、用字系、カテゴリを表示します。Unicode 名が決まっている文字には、その名前も出ます。

不可視文字を見えるようにする

BOM、ゼロ幅接合子、ノーブレークスペースが目に見える代替表示になります。

Unicode 変換の例

ログ行をまるごと貼り付けても、変わるのはエスケープ部分だけ

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

引用符もキー名も数値もそのまま残ります。エスケープ部分を手で抜き出す必要はないので、ログ 1 行をそのまま貼り付けて構いません。

1 回の貼り付けに 4 種類の表記が混ざっていても大丈夫

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

コードポイント表記、ES6 の波括弧エスケープ、HTML の実体参照、サロゲートペア。この 4 種類が 1 回の処理でまとめてデコードされます。事前にモードを選ぶ必要も、設定を変える必要もありません。

1 文字を、各言語それぞれの書き方で

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

同じ文字が、それぞれの言語の期待する形で並びます。BMP の外にある文字については Python と Go は 8 桁のワイドエスケープが必須で、サロゲートペアで書くと Go はコンパイルが通らず、Python は UnicodeEncodeError になります。

Unicode 変換ツールの使い方

  1. 1

    貼り付ける

    エスケープ、コードポイント、実体参照、エンコード済みバイト、プレーンテキスト、どれでも構いません。どの形式かを先に指定する必要はありません。

  2. 2

    結果を読む

    読めるテキストがすぐに表示され、どの表記が認識されたかも併せて示されます。

  3. 3

    必要な形式をコピーする

    結果の下にすべての表記が並び、各行にコピーボタンが付いています。

  4. 4

    おかしいと思ったら分解する

    1 文字ずつの表を開いてコードポイント、バイト、用字系、名前を確認し、「不可視文字を表示」で隠れた文字をあぶり出します。

知っておきたい落とし穴

ワイドエスケープが必要な場所にサロゲートペアを書いてしまう

JSON では問題なく通るペアが、Python では壊れた半分が 2 つになり、Go ではコンパイルが通りません。U+FFFF より上の文字には 8 桁のワイド形式を使ってください。

✗ 誤り
\ud83d\ude00
✓ 正しい
\U0001F600

HTML の数値参照をただのコードポイントとしてデコードする

128 から 159 の間の参照は windows-1252 経由で読む必要があります。素直に実装すると右シングルクォーテーションマークが不可視の制御文字に化けます。古いシステムが書き出したデータで、その位置だけ何も表示されないのは、たいていこれが原因です。

✗ 誤り
’  ->  U+0092
✓ 正しい
’  ->  U+2019

短い CSS エスケープの直後に 16 進文字を置く

パーサーは 16 進数を読める限り読み進めるので、エスケープと次の文字が 1 つの誤ったコードポイントに合体します。6 桁まで埋めれば解決します。

✗ 誤り
\4E2Da
✓ 正しい
\004E2Da

Unicode 変換が必要になる場面

ログを読む
サーバーログや API レスポンスは、非 ASCII がエスケープされた状態で届くことがよくあります。行をそのまま貼り付ければ、編集せずに読めます。
言語をまたいで文字列を移す
移行先の言語が受け付ける形式をそのままコピーできます。サロゲートペアとワイドエスケープの間を手で換算する必要はありません。
エンコードのバグを追う
比較が失敗したときやデータベースが値を弾いたとき、1 文字ずつの表がどのコードポイントとバイトが絡んでいるかを見せてくれます。
貼り付けたテキストを掃除する
Web ページやドキュメントからコピーしたテキストには、不可視文字が紛れ込みがちです。本番に届く前に見つけてください。

Unicode エスケープの技術的な詳細

エスケープしているのは文字ではなくコードユニット
JavaScript、Java、JSON がエスケープするのは UTF-16 コードユニットなので、U+FFFF より上の文字にはエスケープが 2 つ必要です。Python と Go にはコードポイントをそのまま収める 8 桁形式が用意されています。
HTML の数値参照は再マッピングされる
HTML 仕様は、128 から 159 の範囲の数値参照をコードポイントとしてではなく windows-1252 経由で解釈するよう求めています。そのため 146 は不可視の制御文字ではなく、右シングルクォーテーションマークになります。
CSS のエスケープは桁を埋める必要がある
CSS のエスケープは 16 進数を最大 6 桁まで読み取ります。短いエスケープの直後に 16 進文字が続くと、1 つの誤ったコードポイントに合体してしまいます。6 桁まで埋めれば曖昧さは消え、後ろに空白を 1 つ置くとそれが終端として消費されます。
対になっていないサロゲートは行き先ごとに結末が違う
JSON のシリアライズは保持し、TextEncoder は黙って置き換え、パーセントエンコーディングはエラーになり、Java はクエスチョンマークとして書き出し、Python は例外を投げます。

Unicode を扱うときのベストプラクティス

比較の前に正規化する
比較や重複排除の前に、両方を同じ正規化形式にそろえてください。人名や識別子では特に重要です。
Python と Go にはワイド形式を使う
サロゲートペアは JSON では有効ですが、この 2 つの言語では壊れます。出力先が Python か Go のソースなら、U+FFFF より上の文字は 8 桁エスケープにしてください。
不可視文字は早い段階で確認する
後から不一致をデバッグするのではなく、入力を受け取る境界で貼り付けられた内容を検証してください。
元の値を残しておく
置換文字が現れてしまうと、デコードは必ずしも可逆ではなくなります。確認が取れるまで生の値は取っておいてください。

Unicode 変換ツール FAQ

\u4e2d\u6587 はどういう意味ですか?どうすれば読めますか?
\uXXXX は UTF-16 コードユニット 1 個を 16 進数で書いたものです。\u4e2d は U+4E2D、\u6587 は U+6587 で、続けて読むと「中文」という 2 文字の漢字になります。文字列をそのまま上の入力欄に貼り付ければ読めるテキストが返り、周囲の JSON やログのテキストは手を加えずにそのまま残ります。
バックスラッシュが消えて u4e2d だけ残っています。これでも変換できますか?
できます。ターミナルやログのパイプラインはバックスラッシュを飲み込みがちです。つながった u4e2du6587 も認識してデコードしますが、たまたま u を含んでいるだけの普通の単語には手を出しません。
絵文字 1 つがなぜ \u エスケープ 2 つになるのですか?
U+FFFF より上の文字は UTF-16 コードユニット 1 個に収まらないため、JavaScript・Java・JSON ではサロゲートペアという 2 個 1 組の形で書きます。にっこり顔の絵文字はコードポイント 1 個、UTF-16 コードユニット 2 個、UTF-8 バイト 4 個です。この 3 つの数はどれも 1 文字ずつの表で確認できます。
テキストから Unicode エスケープへの変換はどうやりますか?
そのままテキストを入力するか貼り付けて、結果の下の対応表を見てください。すべての表記が一度に生成されるので、必要な言語の形式をコピーするだけです。形式を変えるためにもう一度変換し直す必要はありません。
見た目が同じ 2 つの文字列を、プログラムが別物だと言います。なぜですか?
正規化形式が違う可能性が高いです。アクセント付きの文字は、1 個のコードポイントで書くこともできれば、基底文字と結合文字の 2 個で書くこともできます。表示は同じでも等しくはありません。NFC ボタンで両方を同じ形にそろえてください。正規化は CJK にとっても何もしない処理ではなく、互換漢字は通常の NFC で別のコードポイントに置き換わります。
文字列に紛れ込んだ見えない文字が原因でエラーになります。どうやって見つけますか?
「不可視文字を表示」をオンにしてください。BOM、ゼロ幅スペース、ノーブレークスペース、異体字セレクタが目に見える代替表示になり、1 文字ずつの表にはそれぞれの名前とバイトも出ます。Web ページやドキュメントからコピーしてきたテキストで特に起きやすいトラブルです。
貼り付けたデータはどこかにアップロードされますか?
されません。変換はすべてブラウザ内で行われ、ネットワークリクエストは発生しません。アップロードも記録も保存もしないので、本番環境のログをそのまま貼り付けても安全です。

Base64エンコーダー&デコーダー

エンコーディングとフォーマット

Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。

Base64 画像変換ツール

エンコーディングとフォーマット

Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。

CSV to JSON 変換ツール

エンコーディングとフォーマット

CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。

.env から JSON への変換ツール

エンコーディングとフォーマット

.env ファイルを貼り付けるだけで即座に JSON に変換。データベースのパスワードや API キー、トークンはブラウザから一切出ません。100% プライベート、アップロード不要、無料の dotenv パーサー。

無料HTMLエンティティデコーダー — HTMLをアンエスケープ

エンコーディングとフォーマット

HTMLエンティティをデコードし、HTMLをオンラインでアンエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の参照を文字に戻します。アップロードは一切なし。

無料HTMLエンティティエンコーダー — HTMLをエスケープ

エンコーディングとフォーマット

HTMLエンティティをエンコードし、特殊文字(< > & " ')をオンラインでエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の出力に対応、アップロードは一切なし。