Unicode'daki olası tüm geçerli kombinasyonların sayımını açıklamayla birlikte istiyorum.
1.111.998 : 17 uçak × uçak başına 65.536 karakter - 2048 vekil - 66 karakter olmayan
UTF-8 ve UTF-32'nin teorik olarak 17 düzlemden çok daha fazlasını kodlayabildiğini, ancak aralığın UTF-16 kodlamasının sınırlamalarına göre kısıtlandığını unutmayın .
137.929 kod noktası aslında Unicode 12.1'de atanmıştır .
Ayrıca, o karakterin başlangıç baytı ne kadar uzun olması gerektiğini temizlese de, devam baytlarının neden kısıtlamaları olduğunu anlamıyorum.
UTF-8'deki bu kısıtlamanın amacı, kodlamanın kendi kendini senkronize etmesini sağlamaktır .
Bir karşı örnek olarak, Çin GB 18030 kodlamasını düşünün . Orada, harf ß
, 81 30 89 38
rakamların kodlamasını içeren bayt dizisi olarak temsil edilir 0
ve 8
. Bu nedenle, bu kodlamaya özgü tuhaflık için tasarlanmamış bir dizge arama işleviniz varsa, rakam için yapılan bir arama 8
harf içinde yanlış bir pozitif bulacaktır ß
.
UTF-8'de, bu olamaz, çünkü baştaki baytlar ile iz baytları arasındaki örtüşmeme, daha kısa bir karakterin kodlamasının daha uzun bir karakterin kodlaması içinde asla gerçekleşemeyeceğini garanti eder.