AVQIS GUIDE
UTFとBase64の違いと、目的に合ったツールの選び方
文字コードの値を調べる場合と、テキストをBase64にする場合の違いを、日本語や絵文字の具体例で解説します。
このガイドで分かること
文字の値を調べたい場合と、データを別の文字列で表したい場合では、使うツールが異なります。「日本語を変換する」という言葉だけでは選びにくいため、まずUTFとBase64が何を表すのかを分けて考えます。
文字・コードポイント・文字コード・Base64の違い
| 言葉 | この例での意味 |
|---|---|
| 文字 | 画面に見える「あ」などの表現。見た目の1文字が、必ず1つのコードポイントとは限りません。 |
| コードポイント | Unicodeで割り当てられた値。「あ」はU+3042です。 |
| UTF-8・UTF-16・UTF-32 | Unicodeの値を、バイトやコードユニットで表す方式です。同じ文字でも表現される値や長さが異なります。 |
| Base64 | バイト列を一定の文字の組み合わせで表す方式です。文字コードでも暗号化でもありません。 |
AVQISのBase64ツールでは、入力テキストをUTF-8のバイト列にしてからBase64へ変換します。そのためUTFとBase64は競合する方式ではなく、同じ処理の別の段階として使われます。
「Aあ😀」のコード値を確認する
- UTF-8 / UTF-16 / UTF-32変換を開きます。
- 空白なしで
Aあ😀を入力し、「コード値を表示」を押します。 - 結果を次の例と比較します。数値はいずれも16進数です。
A | UTF-8: 41 | UTF-16: 0041 | UTF-32: 00000041
あ | UTF-8: E3 81 82 | UTF-16: 3042 | UTF-32: 00003042
😀 | UTF-8: F0 9F 98 80 | UTF-16: D83D DE00 | UTF-32: 0001F600 UTF-8の欄は1バイトずつ、UTF-16の欄は16ビットのコードユニットごとに表示しています。😀はUTF-16では2つのコードユニットで表されます。UTF-32の欄はコードポイントを8桁の16進数で表示したもので、ファイルに書き出したバイト順を示すものではありません。
「あ」をBase64へ変換して戻す
- Base64変換へ
あだけを入力し、「Base64へ変換」を押します。 - 結果は
44GCです。「あ」のUTF-8バイト列E3 81 82をBase64で表しています。 - 入力欄を
44GCに置き換え、「テキストへ復元」を押すとあに戻ります。
入力に改行や空白を加えると、変換するバイト列も変わります。例と比較するときは、それらを含めずに入力してください。
目的に合うツールを選ぶときの注意
- 文字の内部表現や絵文字のコード値を確認したい場合はUTFツールを使います。現在の機能は文字列からの値表示で、コード値から文字列への逆変換やファイルの文字コード変換ではありません。
- UTF-8テキストをBase64として扱いたい場合はBase64ツールを使います。任意の画像やバイナリをテキストとして復元する機能ではなく、正しいUTF-8にならないデータはエラーになります。
- Base64は誰でも復元できる表現です。パスワードや個人情報の保護には使わないでください。
- 文字化けの調査では、読み込み側と書き出し側の文字コード設定も確認します。コード値を表示しただけでは、原因の特定や修復はできません。