同じコードポイントを別の形で保存
UTF-8、UTF-16、UTF-32は、いずれもUnicodeの文字を保存するための符号化方式です。文字そのものが違うのではなく、コードポイントをどのようなバイト列にするかが異なります。
UTF-8
1〜4バイトUTF-16
2または4バイトUTF-32
原則4バイトWebではUTF-8
UTF-8はASCIIとの互換性があり、英数字中心のデータを小さく保てるためWebで広く使われています。日本語の多くは3バイトです。
UTF-16とUTF-32
UTF-16は多くの文字を2バイトで表せますが、絵文字などはサロゲートペアになります。UTF-32は位置計算が単純な反面、英数字にも4バイトを使うため容量が大きくなります。