Tour of Rust Table of Contents

utf-8 คืออะไร

ด้วยเหตุที่ว่ามีการใช้ภาษาที่หลากหลายมากบนคอมพิวเตอร์ โลกนี้จำเป็นต้องมีอะไรสักอย่าง ที่สามารถแสดงอักขระที่เกินกว่าที่ ACSII เคยทำได้ (1ไบต์แสดงได้เพียง 256 อักขระ)

utf-8 จึงถูกนำมาใช้แทนด้วยขนาดที่แปรผันได้ 1-4ไบต์ ทำให้การแสดงอักขระมีความเป็นไปได้เพิ่มขึ้นอย่างมาก

ข้อได้เปรียบของขนาดอักขระที่แปรผันได้ก็คือเราจะไม่ต้องมีอักขระที่ไม่จำเป็น แบบที่เคยพบใน ASCII (ใน utf-8 ยังมีบางตัวที่มีขนาด 1ไบต์อยู่ด้วย)

แต่ข้อเสียของมันก็มี นั่นคือมันทำให้การค้นหาอักขระจะไม่เร็วเหมือนเดิม(O(1) เสมอ) ด้วยการบอก index ไปตรงๆ (ตัวอย่างเช่น my_text[3] เพื่อรับอักขระตัวที่ 4 ออกมา) เพราะมันอาจเป็นไปได้ว่าอักขระก่อนหน้าจะมีขนาดแปรผัน ทำให้อักขระตัวที่ 4 อาจะเปลี่ยนตำแหน่งไป

นั่นทำให้เราจำเป็นต้องวนหาของตามลำดับไบต์ของ utf-8 เพื่อหาว่า Unicode ตัวนั้นจริงๆเริ่มต้นที่ไหน (O(n) ในเชิงเส้น)

Ferris: "ฉันมีความสุขมากที่เรามี utf-8 เพราะมันแสดงอิโมจิของเหล่าเพื่อนใต้น้ำของฉันได้"

🐠🐙🐟🐬🐋

Mascot Ferris