Unicode デコーダー
Unicode エスケープとテキストを相互変換。\uXXXX、\UXXXXXXXX、&#XXXX; エンティティ、コードポイント検索に対応。すべてブラウザ内で処理。
結果がここに表示されます...
文字情報
| 文字 | コードポイント | UTF-8 バイト | HTML エンティティ | CSS エスケープ | JS エスケープ |
|---|
Unicode デコーダーの使い方
モードを選択
デコード(エスケープ → テキスト)またはエンコード(テキスト → エスケープ)モードを選択してください。
入力
モードに応じて Unicode エスケープまたはプレーンテキストを貼り付けてください。
変換
変換をクリックして、結果と文字の詳細を確認してください。
Unicode エンコードとは
Unicode エンコードにより、あらゆる言語や記号システムの文字を異なる形式で表現できます。一般的なエンコード形式には \uXXXX(JavaScript/JSON)、&#NNNNN;(HTML エンティティ)、U+XXXX(Unicode コードポイント)があります。これらのエンコードにより、テキストが異なるシステム間で安全に転送・表示されることが保証されます。
エンコード形式
JavaScript(\uXXXX)
JSON や JavaScript 文字列で使用
HTML エンティティ(&#XXXX;)
HTML で特殊文字を表現するために使用
CSS エスケープ(\XXXXXX)
CSS の content や識別子で使用
文字化けを修復(Mojibake Repair)
文字化け(mojibake)は、ある文字コードのバイト列を別の文字コードで解釈したときに発生します。最も多いのは UTF-8 のバイトを Windows-1252 や Latin-1 として読むケースで、「café」が「café」になります。上の「文字化けを修復」モードに切り替えて壊れたテキストを貼り付けてください。各文字を生のバイトとして扱い、UTF-8 として再デコードして元の文字を復元します。
よくある文字化けの例
| 文字化け | 修復後 | 原因 |
|---|---|---|
| café | café | UTF-8 → Latin-1 |
| å¼ ä¸‰ | 张三 | UTF-8 → Latin-1 |
| “hi†| “hi” | UTF-8 → double-encoded |
| ü ö ñ | ü ö ñ | UTF-8 → Windows-1252 |
| �� | � � | バイト喪失済み(U+FFFD) |
アプリで文字化けを防ぐには、常にエンコーディングを明示してください:HTML では <meta charset="UTF-8">、HTTP ヘッダーでは Content-Type: text/html; charset=utf-8、データベースや接続でも UTF-8 を統一します。
UTF-8・UTF-16・UTF-32 の比較
| UTF-8 | UTF-16 | UTF-32 | |
|---|---|---|---|
| 符号化単位 | 8 bit | 16 bit | 32 bit |
| A (U+0041) | 41 | 00 41 | 00 00 00 41 |
| é (U+00E9) | C3 A9 | 00 E9 | 00 00 00 E9 |
| 中 (U+4E2D) | E4 B8 AD | 4E 2D | 00 00 4E 2D |
| 🎉 (U+1F389) | F0 9F 8E 89 | D8 3C DF 89 | 00 01 F3 89 |
| 適した用途 | Web・JSON・API:ASCII 互換でコンパクト | Java・JavaScript・C# のメモリ内テキスト | コードポイント直接アクセス、まれ |
よく使う Unicode コードポイント
よく調べられる文字のクイックリファレンス:句読記号、通貨記号、アクセント付き文字、数学記号と U+XXXX コード。
句読記号・記号
| “U+201C | ”U+201D | ‘U+2018 | ’U+2019 |
| –U+2013 | —U+2014 | …U+2026 | U+A0 |
| ©U+A9 | ®U+AE | ™U+2122 | °U+B0 |
通貨記号
| €U+20AC | £U+A3 | ¥U+A5 | ₹U+20B9 |
| ¢U+A2 | ₽U+20BD | ₩U+20A9 | ฿U+E3F |
アクセント付き文字
| éU+E9 | èU+E8 | êU+EA | üU+FC |
| öU+F6 | ñU+F1 | åU+E5 | øU+F8 |
| çU+E7 | ßU+DF | ąU+105 | žU+17E |
数学・矢印
| ±U+B1 | ×U+D7 | ÷U+F7 | ≈U+2248 |
| ≠U+2260 | ≤U+2264 | ≥U+2265 | →U+2192 |
| ∞U+221E | ∑U+2211 | √U+221A | µU+B5 |
よくある質問
\uXXXX(BMP)、\UXXXXXXXX(全 Unicode)、&#DDDD;(10進数 HTML エンティティ)、&#xHHHH;(16進数 HTML エンティティ)、U+XXXX(コードポイント表記)のデコードに対応しています。
UTF-8 は各 Unicode コードポイントを1〜4バイトでエンコードします。ASCII 文字(U+0000〜U+007F)は1バイト、ラテン文字や一般的な文字は2バイト、ほとんどの CJK 文字は3バイト、絵文字や希少文字は4バイトを使用します。
\uXXXX は4桁の16進数で基本多言語面(U+0000〜U+FFFF)の文字を表現できます。\UXXXXXXXX は8桁の16進数で BMP を超えるすべての Unicode 文字を表現できます。
それは mojibake(文字化け)の兆候です:UTF-8 のバイトが Windows-1252/Latin-1 としてデコードされました。「é」は「é」の UTF-8 2 バイト(0xC3 0xA9)が別々の文字として表示されたものです。「文字化けを修復」モードで修復できます。「�」は U+FFFD 置換文字で、バイトが既に失われているため復元できません。
UTF-8 は文字を 1〜4 バイトで符号化し ASCII と完全互換のため、Web・JSON・API の標準です。UTF-16 は 2 または 4 バイト(U+FFFF 超はサロゲートペア)で、JavaScript・Java・Windows の内部表現に使われます。Web のテキストでは UTF-8 の方が小さく安全です。
コードポイントは Unicode 規格で文字に割り当てられた番号(é なら U+00E9)であり、コード単位はエンコーディングが使用する格納単位です。UTF-8 のコード単位は 8 ビットのバイトで、U+00E9 は 2 つを必要とします。一方、UTF-16 のコード単位は 16 ビットで、U+FFFF を超える文字は 2 つのコード単位(サロゲートペア)を必要とします。JavaScript の文字列は UTF-16 なので、'hello'.length は 5 ですが、絵文字の .length は 2 になります。
同じ見た目の文字でも、複数のバイト列が存在する場合があります。é は 1 つの合成済み文字(NFC)でも、e に結合アクセントを付けた形(NFD)でも表現できます。NFC は合成し、NFD は分解します。NFKC/NFKD はさらに互換文字(全角形、合字)を分解します。正規化せずにユーザー入力を比較したりハッシュ化したりすると、アカウントの重複や検索の失敗という典型的な問題が起こります(fi 合字と f+i がその例です)。
バイトオーダーマーク(BOM)は、エンコーディングを示すためにストリームの先頭に配置された U+FEFF の符号表現(UTF-8 では EF BB BF)です。エディターでは通常非表示になりますが、その後の処理では目に見えない先頭文字として振る舞います。CSV ではヘッダーの最初のキーに見えない文字が混ざり、JSON は余計なトークンのせいでパースに失敗し、PHP のセッションではヘッダーの前に BOM が出力されてしまいます。UTF-8 にはバイト順の曖昧さがないため BOM は不要です。BOM を付けずに保存してください。
関連ツール
権威ある参考文献
このツールの根拠となる一次資料です。二次的な要約ではなく、公式の標準規格と仕様に基づいています。