「この文字の文字コードは?」と調べたくなることがあります。本記事では、文字コードの基本的な仕組みと、UnicodeとUTF-8の関係、1文字の文字コードを調べる方法を解説します。
コンピュータは文字をそのまま扱えないため、1文字ずつに番号を割り当てて管理しています。この番号が文字コードです。「A」には65、「猫」には29483という具合に、文字と番号が1対1で対応しています。
ここが混同されやすい点です。
U+732B(猫)のように表記します。つまり、Unicodeは「番号の決め方」、UTF-8は「その番号をどう保存するか」という、役割の異なる仕組みです。UTF-8以外にも、UTF-16やShift-JISなど、保存方式にはいくつかの種類があります。
UTF-8の特徴は、文字によって使うバイト数が1〜4バイトと変わることです。
| 文字の種類 | バイト数 | 例 |
|---|---|---|
| 半角英数字 | 1バイト | A → 0x41 |
| 多くの日本語 | 3バイト | 猫 → 0xE7 0x8C 0xAB |
| 一部の絵文字 | 4バイト | 😀 など |
「日本語を含む文字列は、見た目の文字数よりバイト数が多くなる」という性質は、データベースの文字数制限やファイルサイズを見積もる際に覚えておくと役立ちます。
文字化けは、文字を保存したときのエンコード方式(例: UTF-8)と、読み込むときに想定しているエンコード方式(例: Shift-JIS)が食い違ったときに起きます。同じバイト列でも、どのエンコード方式で解釈するかによって、まったく違う文字として表示されてしまうのです。
特定の1文字について、Unicodeのコードポイント、UTF-8でのバイト列、10進数表記、HTMLで使う実体参照(猫のような表記)をまとめて知りたい場合は、文字コード表を使うのが早道です。
文字コードは文字に割り当てられた番号で、Unicodeがその番号の決め方、UTF-8が番号の保存方式です。この2つの役割の違いを理解しておくと、文字化けの原因も追いやすくなります。
1文字の文字コードを調べたいときや、テキスト全体をUTF-8・Unicodeコードポイントに変換したいときは、文字コード変換・文字コード表ツールをご利用ください。