文字コード変換
文字とUnicodeコードポイント・UTF-8バイト列・UTF-16・HTML実体参照・URLエンコードを 相互変換します。絵文字やサロゲートペアにも対応。データは送信されません。
| 文字 | Unicode | 10進 | UTF-8 | UTF-16 | 実体参照 |
|---|---|---|---|---|---|
| あ | U+3042 | 12,354 | E3 81 82 | 3042 | あ |
| A | U+0041 | 65 | 41 | 0041 | A |
| 🎈 | U+1F388 | 127,880 | F0 9F 8E 88 | D83C DF88 | 🎈 |
3 文字(コードポイント単位)。絵文字はサロゲートペアのため UTF-16 が2つになります。
使い方
「文字 → コード」では入力した文字を1つずつ分解して、各種の表現を並べます。 「コード → 文字」では U+3042 のようなコードから文字に戻せます。複数まとめて指定することもできます。
文字コードのしくみ
Unicodeでは、世界中の文字それぞれにコードポイントという番号が振られています。 「あ」なら U+3042 です。この番号を実際のデータとして保存・送信するときの方法が符号化方式で、 もっとも広く使われているのがUTF-8です。
| 文字 | コードポイント | 10進 | UTF-8 | バイト数 | UTF-16 |
|---|---|---|---|---|---|
| A | U+0041 | 65 | 41 | 1 | 0041 |
| あ | U+3042 | 12,354 | E3 81 82 | 3 | 3042 |
| 漢 | U+6F22 | 28,450 | E6 BC A2 | 3 | 6F22 |
| ① | U+2460 | 9,312 | E2 91 A0 | 3 | 2460 |
| 🎈 | U+1F388 | 127,880 | F0 9F 8E 88 | 4 | D83C DF88 |
UTF-8は文字によってバイト数が変わるのが特徴です。半角英数字は1バイトで済むため、 英語中心のデータでは容量が小さくなります。日本語は多くが3バイトです。
サロゲートペアという落とし穴
UTF-16では1つの単位で U+FFFF までしか表せません。それを超える文字(多くの絵文字など)は、 2つの単位に分けて表します。これがサロゲートペアです。
そのため、プログラムによっては絵文字1つが「長さ2」と数えられます。 風船の絵文字はコードポイントが U+1F388 の1文字ですが、UTF-16では D83C と DF88 の2つになります。 文字数を数えるときに食い違いが起きるのは、これが原因です。
表現の使い分け
| 表現 | 書き方(「あ」の場合) | 使う場面 |
|---|---|---|
| コードポイント | U+3042 | 仕様書やドキュメントで文字を特定する |
| UTF-8 | E3 81 82 | ファイルや通信の中身を調べる |
| HTML実体参照 | あ | HTMLに直接書けない文字を表す |
| URLエンコード | %E3%81%82 | URLに日本語を含める |
| JavaScript | あ | ソースコードに文字を埋め込む |
使うときの注意
- 対応しているのはUTF-8とUTF-16です。Shift_JISやEUC-JPには対応していません。
- 結合文字(濁点を別に持つ文字など)は、コードポイントごとに1行ずつ表示されます。
- サロゲートの片方だけ(D800〜DFFF)は文字として成立しないため、変換できません。
- 表示は先頭200文字までです。長い文章の全文解析には向きません。
よくある質問
コードポイントとUTF-8は何が違いますか?
コードポイントは「その文字に振られた番号」、UTF-8は「その番号をバイト列で表す方法」です。ひらがなの「あ」はコードポイントがU+3042(10進で12354)で、UTF-8では E3 81 82 の3バイトになります。
日本語は何バイトですか?
UTF-8では、ひらがな・カタカナ・漢字の多くが3バイトです。半角英数字は1バイト、一部の絵文字や補助漢字は4バイトになります。データベースの桁数制限がバイト単位の場合は注意が必要です。
サロゲートペアとは何ですか?
UTF-16で、U+FFFFを超える文字を2つの単位に分けて表す仕組みです。絵文字の多くが該当し、プログラムによっては「1文字なのに長さが2」と数えられます。このツールではUTF-16の欄に2つの値が並びます。
Shift_JISやEUC-JPには対応していますか?
対応していません。ブラウザが標準で扱えるのがUTF-8・UTF-16のため、これらに絞っています。Shift_JISのコードが必要な場合は専用のツールをお使いください。
「あ」のような書き方は何ですか?
HTMLの数値文字参照です。文字コードで直接書けない環境でも文字を表せます。あ と書くと「あ」が表示されます。16進で書く場合は あ です。
入力した文字は送信されますか?
いいえ。変換はすべてブラウザ内で行われ、入力内容が外部へ送信・保存されることはありません。
関連ツール
文字数やバイト数の集計は 文字数カウント、URLの変換は URLエンコード、16進数そのものの変換は 基数変換 をどうぞ。 データ量の単位は データ量の換算、Base64は Base64エンコード が便利です。