隨著越來越多語言在電腦上使用,這個世界就需要顯示更多文字字元,而不是單單 ASCII 允許的 1 個位元、256 個字元。
utf-8 以有著 1-4 個位元組的可變長度登場,這大幅增加可能的字元。
使用可變長度有個優勢是,對於那些常用的 ASCII (在 utf-8 裡仍只需要一個位元組),文字將不會有不必要的位元組。
可變長度的缺點是,查找字元時無法快速地 (O(1) 常數時間) 用索引完成 (例如:my_text[3]
以取得第 4 個元)。
的確有可能在前面的字元可以有可變的寬度,修改第 4 個字元事實上是從第一個位元組開始。
取而代之的是,我們必定得迭代整個 utf-8 位元序列,才有辦法知道萬國碼是從哪裡開始 (O(n) 線性時間)。
Ferris:「我非常高興有 utf-8 可以用 emoji 來表示我的水底朋友們。」"
🐠🐙🐟🐬🐋