Unicode コードポイントの変換
【ご注意】このページの計算結果・情報は参考値です。正確性・最新性は保証できません。税務・法務・お金・設計・施工・安全などに関わる判断は、公式の資料と専門家の確認のうえ、ご自身の責任で行ってください。免責事項
文字を入れると Unicode の符号位置(U+XXXX)と、UTF-8・UTF-16 のバイト列、HTML の数値文字参照、JavaScript のエスケープを表示します。逆にコードポイントから文字を復元することもできます。
Unicode コードポイントの変換ツール
コードポイントとバイト列
Unicode ではすべての文字に U+0000〜U+10FFFF の番号が割り当てられています。これが符号位置(コードポイント)で、「A」は U+0041、「あ」は U+3042、「漢」は U+6F22、絵文字の「😀」は U+1F600 です。文字そのものと番号は1対1で対応し、どの環境でも変わりません。
実際に保存するときは、この番号をバイトの並びに直します。UTF-8 は番号の大きさで長さが変わり、U+007F までが1バイト、U+07FF までが2バイト、U+FFFF までが3バイト、それ以上が4バイトです。UTF-16 は基本的に2バイト固定ですが、U+FFFF を超える文字は2つの値の組(サロゲートペア)で表します。絵文字の文字数が環境によって2と数えられることがあるのは、この仕組みが理由です。
代表的な文字のコードポイント
| 文字 | 符号位置 | 10進 | UTF-8 | UTF-16 |
|---|---|---|---|---|
| A | U+0041 | 65 | 41(1バイト) | 0041 |
| ¥ | U+00A5 | 165 | C2 A5(2バイト) | 00A5 |
| あ | U+3042 | 12354 | E3 81 82(3バイト) | 3042 |
| 漢 | U+6F22 | 28450 | E6 BC A2(3バイト) | 6F22 |
| 𠮟 | U+20B9F | 134047 | F0 A0 AE 9F(4バイト) | D842 DF9F |
| 😀 | U+1F600 | 128512 | F0 9F 98 80(4バイト) | D83D DE00 |
主な文字の範囲
| 範囲 | 内容 | UTF-8の長さ |
|---|---|---|
| U+0000〜U+007F | 半角英数字・制御文字(ASCII) | 1バイト |
| U+0080〜U+07FF | ラテン拡張・ギリシャ・キリル | 2バイト |
| U+3040〜U+309F | ひらがな | 3バイト |
| U+30A0〜U+30FF | カタカナ | 3バイト |
| U+4E00〜U+9FFF | 漢字(CJK統合漢字) | 3バイト |
| U+FF01〜U+FF5E | 全角英数字・記号 | 3バイト |
| U+FF61〜U+FF9F | 半角カナ | 3バイト |
| U+1F300〜U+1FAFF | 絵文字 | 4バイト |
| U+20000〜U+2A6DF | 拡張漢字(𠮟 など) | 4バイト |
書き方の種類
| 形式 | 「あ」の書き方 | 使う場面 |
|---|---|---|
| Unicode の表記 | U+3042 | 文書・仕様書 |
| HTML 数値文字参照(10進) | あ | HTML の本文 |
| HTML 数値文字参照(16進) | あ | 同上 |
| JavaScript のエスケープ | \u3042 | プログラムの文字列 |
| CSS のエスケープ | \3042 | content プロパティ |
| URL エンコード(UTF-8) | %E3%81%82 | URL のパラメータ |
※入力した文字列はお使いのブラウザの中だけで処理され、サーバーには送信されません。結果は参考です。業務システムへの適用にあたっては、実装側の仕様をご確認ください。
Unicode コードポイントの変換の詳しい解説
Unicode は世界中の文字に固有の番号を割り当てる仕組みです。それ以前は、日本語なら Shift_JIS、中国語なら GB、ヨーロッパなら ISO-8859 と、地域ごとに別々の文字コードが使われており、同じバイトの並びが国によって別の文字を意味していました。文字化けが起きる根本の原因はここにあります。Unicode はすべての文字に世界共通の番号を与えることでこの問題を解こうとしたもので、現在は U+0000 から U+10FFFF までの約111万の番地が用意され、そのうち十数万が実際に使われています。
番号と保存形式は別の話です。U+3042 という番号を実際にファイルに書くとき、何バイトでどう並べるかを決めるのが符号化方式で、UTF-8 と UTF-16 が代表です。UTF-8 は番号が小さいほど短くなる可変長で、英数字が1バイトのまま扱えるため、既存の英語圏のシステムと相性がよく、現在の Web の標準になっています。日本語は3バイトを使うので、Shift_JIS の2バイトより容量は増えますが、世界中の文字を扱えることと引き換えです。
UTF-16 は原則2バイト固定で、番号をそのまま2バイトに入れます。ところが Unicode が U+FFFF を超えて拡張されたとき、2バイトでは足りなくなりました。そこで U+D800〜U+DFFF の範囲を「単独では文字を表さない特別な値」として空けておき、2つ組み合わせて1文字を表す方式が導入されました。これがサロゲートペアです。絵文字や一部の漢字がこれに当たり、プログラムが文字数を数えるときに2と数えてしまう原因になっています。文字数カウントのツールが「見た目どおり1文字」と「内部の値の数」で違う答えを出すのはこのためです。
実務で役立つのは、同じ文字を別の書き方で表す場面です。HTML の本文に直接書けない文字は あ のような数値文字参照で書けますし、プログラムの文字列では \u3042 というエスケープが使えます。CSS の content プロパティではバックスラッシュのあとに16進数を書きます。どれも指している番号は同じ U+3042 で、書き方が違うだけです。このツールは主な形式をまとめて出すので、貼り付ける先に合わせて選べます。
逆引きも実用的です。ログやデータに U+XXXX の形で残った番号から、どの文字だったかを復元できます。注意点として、U+D800〜U+DFFF の範囲は単独では文字にならないため、このツールは範囲外として弾きます。また、見た目が同じでも番号が違う文字が多数あることも覚えておいてください。全角の「A」(U+FF21)と半角の「A」(U+0041)、ハイフンに見える文字が何種類もあるのは典型例で、検索や照合が合わない原因の多くはここにあります。
業界・現場での使い方
文字化け・照合不一致の原因調査
見た目が同じなのに一致しない文字を、符号位置まで下ろして違いを特定します。
プログラムへの埋め込み
直接書けない文字を JavaScript や HTML のエスケープ形式に直します。
データの桁数設計
UTF-8 でのバイト数を確認し、データベースの列幅を決めます。
絵文字を含む文字列の扱い
サロゲートペアの有無を確認し、文字数の数え方の食い違いを説明します。
よくある間違い・注意点
- 見た目が同じなら同じ文字だと思う — 全角A(U+FF21)と半角A(U+0041)は別の文字です。ハイフンも何種類もあります。
- UTF-8 が常に3バイトだと思う — 英数字は1バイト、絵文字は4バイトです。番号の大きさで変わります。
- 絵文字を1文字と数えて桁数を設計する — UTF-16 では2つの値になり、UTF-8 では4バイトです。
- U+D800〜U+DFFF を文字として扱う — サロゲートペア専用の範囲で、単独では文字を表しません。
- コードポイントと保存形式を混同する — U+3042 は番号、E3 81 82 は UTF-8 での保存形です。
関連する規格・公的資料
- Unicode コンソーシアム — Unicode の規格と符号位置の定義
- W3C(World Wide Web Consortium) — HTML の文字参照と仕様
- WHATWG HTML Standard — 名前付き文字参照の一覧と解釈の規定
- WHATWG Encoding Standard — ブラウザが扱う文字エンコードの仕様
- IETF(RFC の発行元) — RFC 3629(UTF-8)などの規格
- ITU(国際電気通信連合) — 国際モールス符号の勧告 ITU-R M.1677
- 総務省 電波利用ホームページ — 無線従事者・和文モールスの制度
- 日本産業標準調査会(JISC) — JIS X 0201・JIS X 0208 など文字集合の規格
- 日本規格協会(JSA) — JIS 規格票の発行
- 情報処理推進機構(IPA) — 文字情報基盤と安全な実装の手引き
- MDN Web Docs — parseInt・codePointAt などの仕様解説
- IEEE — 浮動小数点や整数表現の標準
- Unicode 標準(符号位置と符号化方式) — コードポイントと UTF-8・UTF-16 の定義
- RFC 3629(UTF-8) — UTF-8 の符号化規則
- JIS X 0221(国際符号化文字集合) — Unicode に対応する国内規格
※本ツールは公的基準に基づく参考計算です。医療・法務・税務の判断は最新の告示・規格および専門家の判断に従ってください。
よくある質問(FAQ)
コードポイントとは何ですか?
Unicode が各文字に割り当てた番号です。U+0041 が「A」、U+3042 が「あ」です。
UTF-8 と UTF-16 の違いは?
UTF-8 は1〜4バイトの可変長、UTF-16 は原則2バイトです。日本語は UTF-8 で3バイト、UTF-16 で2バイトです。
サロゲートペアとは?
U+FFFF を超える文字を UTF-16 で表すために、2つの値を組にする仕組みです。絵文字が該当します。
絵文字はなぜ2文字と数えられるのですか?
UTF-16 で2つの値になるためです。見た目は1文字です。
コードポイントから文字を作れますか?
できます。16進数を空白区切りで入力してください。U+ を付けても構いません。
HTML に直接書けない文字はどうしますか?
数値文字参照が使えます。「あ」なら あ または あ です。
全角Aと半角Aは同じ文字ですか?
違います。全角は U+FF21、半角は U+0041 で、検索しても一致しません。
U+D800 を入れるとどうなりますか?
サロゲートペア専用の範囲なので、単独では文字にならず範囲外として扱います。
入力した文字は送信されますか?
送信されません。すべてブラウザの中だけで処理しています。