Seiring semakin banyak bahasa yang digunakan di komputer, dunia membutuhkan cara untuk merepresentasikan lebih banyak karakter teks daripada yang diperbolehkan ASCII (1 byte hanya memperbolehkan 256 karakter).
utf-8 diperkenalkan dengan panjang byte yang bervariasi dari 1-4 byte, meningkatkan jangkauan karakter yang mungkin secara signifikan.
Sebuah keuntungan dari karakter berukuran variabel adalah teks tidak mempunyai byte yang tidak perlu untuk karakter ASCII yang sangat umum (tetap hanya membutuhkan 1 byte di utf-8).
Sebuah kekurangan dari karakter berukuran variabel adalah pencarian karakter tidak lagi dapat dilakukan dengan cepat
(waktu konstan O(1)) dengan pengindeksan sederhana (contoh my_text[3] untuk mendapatkan karakter ke-4). Ada kemungkinan bahwa
karakter-karakter sebelumnya mempunyai lebar yang bervariasi, mengubah di mana karakter ke-4 sebenarnya dimulai dalam urutan byte.
Sebagai gantinya kita harus mengiterasi melalui urutan byte utf-8 untuk memahami di mana karakter Unicode sebenarnya dimulai (waktu linear O(n)).
Ferris: "Saya sebagian besar hanya senang mempunyai utf-8 untuk merepresentasikan emoji dari teman-teman bawah laut saya."
🐠🐙🐟🐬🐋
