Zgodnie z artykułem Wikipedii UTF-8 ma ten format:
Pierwszy kod Ostatni kod Bajty Bajt 1 Bajt 2 Bajt 3 Bajt 4 punkt punkt Używany 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 oznacza, że ten bit służy do wyboru punktu kodowego.
Marnuje to dwa bity na każdym bajcie kontynuacji i jeden bit w pierwszym bajcie. Dlaczego kod UTF-8 nie jest kodowany w następujący sposób?
Pierwszy kod Ostatni kod Bajty Bajt 1 Bajt 2 Bajt 3 punkt punkt Używany U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 3FFF 2 10xxxxxx xxxxxxxx U + 0800 U + 1FFFFF 3 110xxxxx xxxxxxxx xxxxxxxx
Zapisałby jeden bajt, gdy punkt kodowy jest poza podstawową płaszczyzną wielojęzyczną lub jeśli punkt kodowy znajduje się w zakresie [U + 800, U + 3FFF].
Dlaczego UTF-8 nie jest kodowany w bardziej wydajny sposób?