การแทนตัวอักษรภาษาไทยในระบบการเข้ารหัสแบบต่างๆ

ASCII

ในระบบการแสดงผลแบบเก่า ตัวอักษรในภาษาอังกฤษนั้นจะจัดเก็บอยู่ในลักษณะของ ASCII จะจัดเก็บตัวอักษรต่างๆ อยู่ในช่วง 0-127 (หรือ 7 bit หรือก็คือจะต้องใช้ข้อมูเลขฐานสอง 7 ตัว) ในการแทนการแสดงผลตัวอักษรภาษาอังกฤษหนึ่งตัว โดย 7 bit สามารถแทนข้อมูลต่างๆ ได้ ตั้งแต่ A-Z, a-z, ตัวเลข 0-9 และเครื่องหมาย รวมถึงตัวอักษรพิเศษต่างๆ และตัวอักษรที่มองไม่เห็น (Whitespace character) และ เช่น ตัวอักษรเอพิมพ์ใหญ่ (A) นั้นมี ASCII คือ 65 หรือ 1000001 ในเลขฐานสอง เป็นต้น สามารถดูตาราง ASCII ทั้งหมดได้ที่่

การแสดงผลภาษาอื่นๆ บนการเข้ารหัส(encode) แบบ ASCII นั้นทำได้ แต่จะขึ้นอยู่กับระบบปฏิบัติการ(OS) และใช้ในวงแคบ โดยเป็นการขยายความสามารถของ ASCII โดยเพิ่มอีก 1 bit รวมเป็น 8 bit คืออยู่ในช่วง 128-255 ที่ใช้แทนตัวอักษรเพียงได้แค่หนึ่งภาษา ในภาษาไทยมีการใช้วิธีการเข้ารหัสที่หลากหลาย ที่ต่อยอดจากระบบ ASCII เดิม เช่น ใน Windows จะใช้การเข้ารหัสแบบ Windows 874 ซึ่งใช้ได้เฉพาะ Windows เท่านั้น หรือการเข้ารหัสแบบ TIS-620 ที่ใช้ในวงแคบ ถ้าไม่ได้มีการติดตั้งเครื่องมือสำหรับการอ่าน TIS-620 ไว้ เช่น การเข้าเว็บภาษาไทยจากคอมพิวเตอร์ต่างประเทศ ก็จะทำให้ไม่สามารถแสดงผลภาษาไทยได้ถูกต้อง

Unicode

และเพื่อการใช้งานเป็นสากล ไม่ขึ้นอยู่กับระบบปฏิบัติการ(OS) จึงมีการคิดค้น Unicode ซึ่ง Unicode คือการแทนตัวอักษรทุกๆ ตัวอักษร โดยไม่ขึ้นต่อระบบปฏิบัติการ โปรแกรมและ ภาษา โดย Unicode นั้น จะมีการแทน 1 ตัวอักษรของแต่ละภาษาด้วยหลายๆ ไบต์ (Multi-byte encodings) จึงทำให้ใช้พื้นที่ในการจัดเก็บเยอะกว่า แต่สามารถใช้งานได้สะดวก และรองรับทุกๆ ภาษา โดยปกติแล้วการ ส่งข้อมูลหรือการแสดงผ่านเว็บนั้น จะใช้การเข้ารหัสแบบ UTF-8 เพื่อความเป็นสากล ใช้งานได้ทุกภาษา (ซึ่ง UTF-8 จัดเป็น Unicode เลข 8 หมายถึงจำนวนบิตที่ใช้ในการแทนตัวอักษร) ส่วนบน Windows จะใช้ UTF-16 แต่ถ้าบนตระกูล Linux จะใช้ UTF-8

สรุป

เพื่อการใช้งานภาษาไทย และรองรับภาษาทุกๆ ภาษาแล้ว ดังนั้นเราควรที่จะเลือกใช้งานวิธีการเข้ารหัสแบบ Unicode ซึ่งจะเป็น UTF-8 หรือแบบ อื่นๆ ขึ้นอยู่กับการใช้งาน โดยเฉพาะการใช้การเข้ารหัสภาษาไทยบนเว็บนั้น ควรจะเปลี่ยนมาใข้ Unicode แทนแบบ TIS-620 และ Windows-874

อ่านเพิ่มเติม