ชุดตัวอักษรละตินตะวันตก
สรุปใจความสำคัญ
- ชุดตัวอักษรละตินตะวันตกถูกออกแบบมาเพื่อรองรับภาษาในยุโรปตะวันตกโดยใช้การเข้ารหัสแบบ 8 บิต
- ปัญหา Mojibake เกิดจากการใช้ชุดตัวอักษรที่แตกต่างกันในการอ่านและเขียนข้อมูลชุดเดียวกัน
- Unicode ได้เข้ามาแทนที่ชุดตัวอักษร 8 บิตเหล่านี้เพื่อให้สามารถรองรับทุกภาษาในโลกได้ในมาตรฐานเดียว
- การเพิ่มสัญลักษณ์เงินยูโร (€) นำไปสู่การสร้างมาตรฐานย่อย เช่น ISO 8859-15 และการปรับปรุง Windows-1252
ชุดตัวอักษรละตินตะวันตก (Western Latin Character Sets) คือกลุ่มของการเข้ารหัสตัวอักษรแบบ 8 บิตที่ถูกออกแบบมาเพื่อใช้แทนค่าตัวอักษรในภาษาต่างๆ ของยุโรปตะวันตก เช่น ภาษาอังกฤษ, ฝรั่งเศส, เยอรมัน, สเปน, อิตาลี, โปรตุเกส, ดัตช์, เดนมาร์ก, สวีเดน, นอร์เวย์ และไอซ์แลนด์ ซึ่งภาษาเหล่านี้ใช้ตัวอักษรละตินเป็นพื้นฐาน พร้อมด้วยเครื่องหมายกำกับเสียง (Diacritics) และสัญลักษณ์พิเศษต่างๆ นอกจากนี้ ชุดตัวอักษรเหล่านี้ยังรองรับภาษาอื่นๆ เช่น ภาษามาเลย์ และภาษาสวาฮีลี อีกด้วย
ในปัจจุบัน เทคโนโลยีการเข้ารหัสเหล่านี้ถือว่าล้าสมัย เนื่องจากถูกแทนที่ด้วย Unicode ซึ่งเป็นมาตรฐานสากลที่สามารถรองรับตัวอักษรได้จากทุกภาษาทั่วโลก อย่างไรก็ตาม การศึกษาชุดตัวอักษรเหล่านี้ยังมีความสำคัญในเชิงประวัติศาสตร์คอมพิวเตอร์และการจัดการข้อมูลเก่า (Legacy Data)
มาตรฐานการเข้ารหัสที่สำคัญ
การเข้ารหัสแบบ 8 บิตมีหลายมาตรฐาน ซึ่งแต่ละมาตรฐานมีการจัดวางตำแหน่งตัวอักษรที่แตกต่างกัน นำไปสู่ปัญหาที่เรียกว่า Mojibake หรืออาการ "ตัวอักษรต่างด้าว" เมื่อโปรแกรมอ่านไฟล์ด้วยชุดตัวอักษรที่ผิดพลาด
ตระกูล ISO-8859
- ISO/IEC 8859-1 (Latin-1): เป็นมาตรฐานที่ถูกใช้งานแพร่หลายที่สุด และเป็นรากฐานสำหรับ 256 รหัสแรกในมาตรฐาน Unicode
- ISO/IEC 8859-15: เป็นเวอร์ชันปรับปรุงของ Latin-1 เพื่อให้รองรับภาษาเอสโตเนีย ฟินแลนด์ และฝรั่งเศส ได้สมบูรณ์ยิ่งขึ้น รวมถึงการเพิ่มสัญลักษณ์เงินยูโร (€)
มาตรฐานของ Microsoft และ IBM
- Windows-1252: เป็นชุดตัวอักษรที่ขยายมาจาก ISO-8859-1 โดยเพิ่มตัวอักษรที่สามารถพิมพ์ได้ในตำแหน่งที่เดิมเป็นรหัสควบคุม รวมถึงเครื่องหมายคำพูดแบบโค้ง (Smart Quotes) ซึ่งเป็นที่นิยมในโปรแกรมประมวลผลคำของ Microsoft
- IBM CP437: ออกแบบมาเพื่อภาษาอังกฤษเป็นหลัก มีตัวอักษรที่มีเครื่องหมายกำกับเสียงน้อย แต่มีตัวอักษรเชิงกราฟิกและสัญลักษณ์ทางคณิตศาสตร์จำนวนมาก
- IBM CP850: พัฒนาขึ้นเพื่อให้รองรับตัวอักษรที่พิมพ์ได้เหมือนกับ ISO-8859-1 แต่ยังคงรักษาตัวอักษรเชิงกราฟิกไว้สำหรับสร้างส่วนติดต่อผู้ใช้แบบข้อความ (Text-mode UI)
- IBM CP858: คล้ายกับ CP850 แต่เปลี่ยนตัวอักษร i ที่ไม่มีจุด (dotless i) ซึ่งใช้ในภาษาตุรกี ให้เป็นสัญลักษณ์เงินยูโร (€)
มาตรฐานของ Apple
Mac OS Roman เป็นชุดตัวอักษรที่ใช้ในเครื่อง Macintosh ยุคแรก มีการจัดวางตัวอักษรแตกต่างจาก ISO-8859-1 อย่างสิ้นเชิง และมีการเพิ่มสัญลักษณ์ทางเทคนิคและคณิตศาสตร์จำนวนมาก ซึ่งมักทำให้เกิดปัญหาการแสดงผลผิดพลาดเมื่อนำไฟล์ไปเปิดในระบบปฏิบัติการอื่น
ประวัติและการพัฒนา
ในยุคแรก คอมพิวเตอร์ใช้มาตรฐาน ASCII ซึ่งเป็นรหัส 7 บิต รองรับได้เพียงภาษาอังกฤษและภาษาที่มีพื้นฐานใกล้เคียงกันเท่านั้น เนื่องจากข้อจำกัดด้านพื้นที่จัดเก็บข้อมูลและการสื่อสารที่เน้นความเสถียร (ใช้ 7 บิตสำหรับข้อมูล และ 1 บิตสำหรับตรวจสอบความถูกต้องหรือ Parity bit)
เมื่อเทคโนโลยีพัฒนาขึ้น การใช้ข้อมูลครบทั้ง 8 บิตกลายเป็นเรื่องปกติ ทำให้มีพื้นที่ว่างสำหรับตัวอักษรเพิ่มขึ้นอีก 128 ตัว นำไปสู่การสร้างมาตรฐาน ISO/IEC 8859 เพื่อให้เกิดความสอดคล้องกันในการแลกเปลี่ยนข้อมูลระหว่างแพลตฟอร์ม
การปรับตัวเพื่อรองรับสัญลักษณ์เงินยูโร
การเปิดตัวสกุลเงินยูโร (€) สร้างแรงกดดันให้ผู้พัฒนาต้องปรับปรุงชุดตัวอักษร 8 บิตเดิม ซึ่งแต่ละค่ายมีวิธีการจัดการที่ต่างกัน:
- Apple และ Sun Microsystems: แทนที่สัญลักษณ์สกุลเงินทั่วไป (¤) ด้วยสัญลักษณ์ยูโร
- ISO: สร้างมาตรฐาน ISO 8859-15 ขึ้นมาใหม่เพื่อแทนที่สัญลักษณ์บางตัวด้วยสัญลักษณ์ยูโรและตัวอักษรที่มีเครื่องหมายกำกับเสียง
- Microsoft: ใน Windows-1252 ได้นำสัญลักษณ์ยูโรไปวางไว้ในช่องว่างของรหัสควบคุม C1 ซึ่งเป็นแนวทางที่ผู้ผลิตรายอื่นมองว่าไม่ถูกต้องตามหลักสถาปัตยกรรม
คำถามที่พบบ่อย
ทำไมชุดตัวอักษรละตินตะวันตกถึงล้าสมัย?
เพราะชุดตัวอักษร 8 บิตสามารถรองรับตัวอักษรได้สูงสุดเพียง 256 ตัว ซึ่งไม่เพียงพอสำหรับภาษาทั่วโลก Unicode จึงถูกพัฒนาขึ้นเพื่อมอบรหัสที่ไม่ซ้ำกันให้กับทุกตัวอักษรในทุกภาษา
Mojibake คืออะไร?
คือปรากฏการณ์ที่ตัวอักษรแสดงผลผิดเพี้ยนหรือกลายเป็นตัวอักษรประหลาด เนื่องจากซอฟต์แวร์ใช้ชุดตัวอักษร (Encoding) ในการถอดรหัสข้อมูลที่แตกต่างจากชุดตัวอักษรที่ใช้ในการบันทึกข้อมูลนั้น
ความแตกต่างระหว่าง ISO-8859-1 และ Windows-1252 คืออะไร?
Windows-1252 เป็นส่วนขยายของ ISO-8859-1 โดยนำพื้นที่รหัสควบคุม (C1 control codes) มาใช้ใส่ตัวอักษรที่พิมพ์ได้ เช่น เครื่องหมายคำพูดแบบโค้ง และสัญลักษณ์เงินยูโร
