Selon l'article de Wikipedia , UTF-8 a ce format:
Premier code Dernier code Octets Octet 1 Octet 2 Octet 3 Octet 4 point point Utilisé 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 signifie que ce bit est utilisé pour sélectionner le point de code.
Cela gaspille deux bits sur chaque octet de continuation et un bit dans le premier octet. Pourquoi UTF-8 n'est-il pas encodé comme suit?
Premier code Dernier code Octets Octet 1 Octet 2 Octet 3 point point Utilisé U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 3FFF 2 10xxxxxx xxxxxxxx U + 0800 U + 1FFFFF 3 110xxxxx xxxxxxxx xxxxxxxx
Il enregistrerait un octet lorsque le point de code est hors du plan multilingue de base ou si le point de code est dans la plage [U + 800, U + 3FFF].
Pourquoi UTF-8 n'est-il pas encodé de manière plus efficace?