همونطور که زبانهای بیشتری روی کامپیوترها استفاده میشدن، دنیا نیاز داشت که کاراکترهای متنی بیشتری رو نسبت به چیزی که ASCII اجازه میداد نمایش بده (۱ بایت فقط اجازهی ۲۵۶ کاراکتر رو میداد).
utf-8 با طول بایتی متغیر بین ۱ تا ۴ بایت معرفی شد و این کار بازهی کاراکترهای ممکن رو خیلی زیاد کرد.
یه مزیت کاراکترهای با اندازهی متغیر اینه که متن برای کاراکترهای خیلی رایج ASCII بایت اضافه نداره (توی utf-8 هم فقط ۱ بایت لازم دارن).
یه عیب کاراکترهای با اندازهی متغیر اینه که دیگه نمیشه جستجوی کاراکتر رو سریع
(با زمان ثابت O(1)) و با یه ایندکسگذاری ساده انجام داد (مثلاً my_text[3] برای گرفتن کاراکتر چهارم). ممکنه
کاراکترهای قبلی عرض متغیری داشته باشن و همین باعث بشه که کاراکتر چهارم واقعاً از کجای دنبالهی بایتها شروع بشه، تغییر کنه.
به جاش باید روی یه دنبالهی بایت utf-8 پیمایش کنیم تا بفهمیم کاراکترهای یونیکد واقعاً از کجا شروع میشن (با زمان خطی O(n)).
فریس: «من بیشتر فقط خوشحالم که utf-8 رو دارم تا بتونم ایموجیهای دوستای زیردریاییم رو نمایش بدم.»
🐠🐙🐟🐬🐋
