「Unicode」と「UTF-8」の違い
予備知識
| 用語 | 意味 |
|---|---|
| 文字コード | 文字に割り当てられた数字 |
| 符号化文字集合 | コンピュータさんが使う「『文字』と『文字に割り当てた番号』の対応表」 |
| 文字符号化方式 | コンピュータさんが使う「『文字に割り当てた番号』と『実際にコンピュータさんが扱う数字』の対応表」 |
予備知識が長いですが、頑張って読んであげてください。
文字コードは「文字に割り当てられた数字」です。

大前提として、コンピュータさんは「0(ゼロ)」と「1(イチ)」しか理解できません。
人間様が「あ」と入力しても、コンピュータさんは理解できないのです。

でも、コンピュータで文字を扱いたいです。
そこで、文字を数字として扱わせることにしました。
例えば
あ:00000001
い:00000010
う:00000011
え:00000100
お:00000101
のように書いてある対応表を、あらかじめ用意しておくのです。
コンピュータさんには、それを見て、お仕事をしてもらいます。
人間様が「あい」と入力したとしましょう。
対応表には
あ:00000001
い:00000010
と書いてあります。
この対応表をもとにして、コンピュータさんは「あい」を「00000001 00000010」に変換します。

コンピュータさんは数字の0と1しか扱えませんが、これなら大丈夫ですよね。
人間様が
あい
と打った文字は、対応表によって変換され、コンピュータさんは
00000001 00000010
と認識しました。
コンピュータさんが扱うのは数字です。
その後、あれやこれやとコンピュータさんがお仕事をして
00000011 00000100
という返事をよこしました。
今度は、さっきと逆です。
対応表をもとにして、数字を文字に変換します。
対応表には
う:00000011
え:00000100
と書いてあります。
00000011 00000100
は
うえ
であると分かります。
コンピュータさんは、対応表に従って変換したものを画面に表示しました。
画面には文字「うえ」が表示されます。

このように
文字と数字を変換する
ことで、数字しか分からないコンピュータさんに文字を扱わせているのです。

さて、ここまでの説明で「文字と数字の対応表」が登場しました。
一言で「文字と数字の対応表」と表現しましたが、実際には2つの表を使います。
それは
1.「文字」と「文字に割り当てた番号」の対応表
2.「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」の対応表
の2つです。
例えば、そうですね。
ピヨ太君が
あ:P-1
い:P-2
う:P-3
え:P-4
お:P-5
な「文字」と「文字に割り当てた番号」の対応表を作りました。
「番号」と言いつつ文字が混ざっていますが、気にしないでくださいね。
さらに
P-1:00000001
P-2:00000010
P-3:00000011
P-4:00000100
P-5:00000101
な「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」の対応表を作りました。
この2つの表を合体させると
あ:P-1:00000001
い:P-2:00000010
う:P-3:00000011
え:P-4:00000100
お:P-5:00000101
な対応表ができあがります。
この合体した対応表を見れば、コンピュータさんは「あ」「い」「う」「え」「お」の5つの文字を数字として扱えますね。
わざわざ2つの表を使う理由は、とりあえず考えないでください。
それなりの理由があるのですが、今の段階で考えると混乱すると思います。
とにかく、2つの表を使って、文字と数字の変換をやっているのです。
この2つの対応表のうち
1.「文字」と「文字に割り当てた番号」の対応表
を「符号化文字集合」と言います。
符号化文字集合は「変換対象となる文字の一覧」が書いてある表です。
もうひとつの対応表
2.「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」の対応表
は「文字符号化方式」と言います。
文字符号化方式は「文字(に割り当てた番号)に対応する、実際にコンピュータさんが扱う数字」が書いてある表です。
それぞれの対応表の役割は
符号化文字集合:「どの文字を変換するか?」な対象の指定
文字符号化方式:「その文字を、どの数字に変換するか?」な変換内容の指定
です。
2つ併せて「どの文字を、どの数字に置き換えるよ!」な指定になります。
符号化文字集合と文字符号化方式の2つが協力して「文字と数字の対応表」の役割を担っているわけです。
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| Unicode | 符号化文字集合のひとつ。あるいは、文字符号化方式のひとつである「UTF-16」のこと |
| UTF-8 | 文字符号化方式のひとつ |
似ているところ
どちらも文字コードの話で出てくる用語です。
あと、同じものだと勘違いしがちな用語でもあります。
違うところ
Unicodeは符号化文字集合です。
「文字」と「文字に割り当てた番号」の対応表です。
UTF-8は文字符号化方式です。
「文字に割り当てた番号」と「実際にコンピュータさんが扱う数字」の対応表です。
……で終われば話が簡単なのですけどね。
実は、文字符号化方式に「UTF-16」というのがあります。
このUTF-16を指して「Unicode」と表現している場合があるのです。

並べて書くと
1.Unicode:符号化文字集合
2.UTF-8:文字符号化方式
3.UTF-16(Unicode):文字符号化方式
です。
1と3を混同しないように、ご注意ください。






