Bilgisayarların ortaya çıkışının ilk dönemlerinde, karakterleri kodlamakta kullanılan ve 1 baytlık bilgi ile sadece 256 karakterin temsil edilebildiği ASCII sistemi, teknoloji gelişip bilgiye erişim talebi arttıkça, daha fazla dilin temsil edilmesine ihtiyaç duyulduğundan yetersiz hale geldi.
Ardından gelen ve bir unicode standardı olan, 1-4 byte arası değişken karakter uzunluklarını destekleyen utf-8 tanıtılarak, daha fazla karakterin temsil edilmesi sağlandı.
Değişken boyutlu karakterlerin avantajı, yaygın kullanılan ASCII karakterler tek 1 bayt ile temsil edildiklerinden, gereksiz baytların kullanılmasına ihtiyaç duymamalarıdır.
Ancak bunların dezavantajı, karakter aramanın, örneğin; bir_metin[3]
dizgisinin 4. karakterini elde etmenin,
artık basit bir indekslemeyle, yani O(1) sabit zamanda hızlı bir şekilde yapılamıyor olmasıdır.
Bununla birlikte, okunacak karakterden önceki karakterlerin değişken bir boyuta sahip olması ve bayt
dizisindeki 4. karakterin bulunduğu konumu değiştirmesi de mümkündür.
Bu nedenle, Unicode karakterlerinin gerçekte nerede başladığını anlayabilmek için utf-8 dizgisini, bayt dizisi boyunca yani O(n) doğrusal zamanda yinelememiz gerekir.
Ferris: "Su altı arkadaşlarımın emojilerini temsil eden utf-8 kodlamasına sahip olduğum için çok mutluyum!"
🐠🐙🐟🐬🐋