UTF-8はUnicodeの文字符号化形式のひとつ。

 

Unicodeでは、0から111万4112までの整数にひとつずつ文字

を割り当てている。番号が決まれば文字が決まる。

 

111万4112という数は、2進数で表現すると8ビットのバイト

単位で3バイト分が必要になる。

 

古くから使われている文字コードにASCIIがある。

ASCIIは、0~9までの数字や、大文字小文字のアルファベット、

いくつかの制御文字を7ビットで示すもので、1963年にAmerican

Standards Associationが制定した。

バイト単位では1バイトで表現することができる。

 

Unicodeの文字を全て3バイトで表現すると、アルファベット

や数字だけしか使わない場合でも、ASCIIで必要となるエリア

の3倍のエリアが必要となり効率が悪い。また、単に3バイト

ずつ並べただけだと、3バイトの区切りが1ヶ所でもずれると、

以降の文字がまったく別の文字として解釈できてしまう。

 

UTF-8は、Unicodeの文字に対応する整数を、上記の問題を回

避する形で表現する方法の一つである。ASCIIの範囲の数字や

アルファベットであれば、ASCIIと同じ値で1バイトで表現す

ることができる。