Menurut artikel Wikipedia , UTF-8 memiliki format ini:
Kode pertama Kode terakhir Bytes Byte 1 Byte 2 Byte 3 Byte 4 point point Digunakan U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 07FF 2 110xxxxx 10xxxxxx U + 0800 U + FFFF 3 1110xxxx 10xxxxxx 10xxxxxx U + 10000 U + 1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx x berarti bit ini digunakan untuk memilih titik kode.
Ini membuang dua bit pada setiap byte lanjutan dan satu bit pada byte pertama. Mengapa UTF-8 tidak dikodekan seperti berikut ini?
Kode pertama Kode terakhir Bytes Byte 1 Byte 2 Byte 3 point point Digunakan U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 3FFF 2 10xxxxxx xxxxxxxx U + 0800 U + 1FFFFF 3 110xxxxx xxxxxxxx xxxxxxxx
Ini akan menghemat satu byte ketika titik kode di luar Basic Multilingual Plane atau jika titik kode berada dalam kisaran [U + 800, U + 3FFF].
Mengapa UTF-8 tidak dikodekan dengan cara yang lebih efisien?