14 May 2004

Unicode

เมื่อวานคุยกับรุ่นน้องเรื่องการทำ index ภาษาญี่ปุ่น คุยกันเรื่องจุดอ่อนของภาษาละแวกนี้ ที่ใช้ตัวอักษรจีน คือ ไม่สามารถเรียงคำตามเสียงอ่านได้ เพราะไม่รู้ว่าอ่านว่าอะไรกันแน่ ดังนั้นเวลากรอกข้อมูลชื่อ ก็เลยจะต้องให้ช่วยกรอกคำอ่านไปด้วย (ชื่อคนญี่ปุ่นนี่แหละปัญหาใหญ่ เพราะไม่รู้ว่าอ่านว่าอะไรแน่ กำหนดกันตามใจพ่อแม่เป็นส่วนใหญ่) คุยไปคุยมา ก็เลยวกไปถึงเรื่องรหัส ทำให้รู้ว่ารหัสตัวคันจิ (อักษรจีน) ที่กำหนดโดย JIS เขาจะเรียงตามเสียงอ่าน ดังนั้นถ้าเรียงตามรหัสก็จะเรียงตามเสียงได้ถูกต้องระดับหนึ่ง แต่ไม่ทั้งหมด เพราะตัวหนึ่งอ่านได้หลายแบบ แต่ที่นี้ต่อไปถ้าจะใช้ unicode เขาเอาตัวคันจิที่ใช้ในจีน ญี่ปุ่น เกาหลี ไปรวมกันเป็น CJK Ideograph ไม่รู้เรียงกันยังไง แต่คิดว่าคงไม่เรียงตามเสียงอ่านของญี่ปุ่นเหมือน JIS แล้วล่ะ ยิ่งพอดูๆ ตาราง unicode ไป ก็เกิดความประหลาดใจ ว่าทำไมตัวอักษรเกาหลีถึงสามารถยึดพื้นที่ได้เยอะมาก คือตัวอักษรเกาหลี แม้ว่าจะเอาตัวเป็นขีดๆ กลมๆ มาผสมกัน จนดูเหมือนตัวอักษรจีน แต่ลักษณะพื้นฐานเป็นเหมือนพยัญชนะกับสระแบบภาษาไทย คือเป็นไปตามกฎ ทำไมเขาไม่ทำ render engine แบบภาษาอื่นๆ แต่ใช้วิธีสร้างตาราง แล้วสร้างตัวอักษรทุกกรณีที่เป็นไปได้ ยึดตาราง unicode ไปตั้งเยอะ ขนาดพวกตัวอักษรเทวนาครี หรืออาหรับที่ผมรู้สึกว่ามีกฎซับซ้อนกว่า เขาก็ยังพยายาม render กันเลย คงเป็นเพราะ unicode พยายามยึดมาตรฐานเดิมของแต่ละประเทศล่ะมั้ง ว่ากันจริงๆ ตัวคันจิ ก็พอจะ render ได้นะ คงลำบากหน่อย แต่ตัวอักษรเกาหลีผมว่าวิธีเขียนก็ไม่ยุ่งยาก แถมเวลาอินพุตเขาก็พิมพ์เข้าไปเป็นส่วนๆ อยู่แล้วด้วย

No comments: