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バイトで表現す
ることができる。