ผมจึงได้ลองทดสอบเทียบกันดู (แต่ได้ตัด windows-874 ออก เพราะคิดว่ามันเป็นมาตรฐานเฉพาะของ Microsoft เท่านั้น)
ผมได้สร้างไฟล์ที่มี Tag <meta http-equiv="content-Type" content="text/html; charset=tis-620">
แล้วลองใช้ charset 3 แบบ คือ ไม่กำหนด, tis-620 และ utf-8
แล้วบันทึกเป็นแบบ ANSI, Unicode, UTF-8 ด้วย Notepad
จากนั้นใช้ Firefox เปิดดู แล้วตรวจสอบว่าภาษาไทยอ่านออกหรือไม่ และดูว่า Firefox เลือก Encoding ให้เป็นแบบใด
ผลการทดสอบ
Case
|
charset | File saving | Thai Readable | Firefox Encoding |
1
|
- | ANSI | ÀÒÉÒä·Â | Western (ISO-8858-1) |
2
|
- | UTF-8 | Yes | Unicode (UTF-8) |
3
|
- | Unicode | Yes | Unicode (UTF-16) |
4
|
tis-620 | ANSI | Yes | Thai (TIS-620) |
5
|
tis-620 | UTF-8 | Yes | Unicode (UTF-8) |
6
|
tis-620 | Unicode | Yes | Unicode (UTF-16) |
7
|
utf-8 | ANSI | | Unicode (UTF-8) |
8
|
utf-8 | UTF-8 | Yes | Unicode (UTF-8) |
9
|
utf-8 | Unicode | Yes | Unicode (UTF-16) |
กรณี 2,3,5,6,8 และ 9แสดงว่า Firefox สามารถค้นหา Encoding ที่ถูกต้องได้เองโดยดูจาก BOM (Byte order mark) ของไฟล์ที่ถูกกำหนดในระหว่างการบันทึก ดังนี้ทุกกรณีที่กล่าวมาจึงสามารถใช้งานภาษาไทยได้ถูกต้อง
ในกรณี 1, 4 และ 7 ที่บันทึกแบบ ANSI ซึ่งไม่มี BOM ที่หัวไฟล์ Firefox จะไปหา Encoding จาก charset ของคำสั่ง html แทน โดย
-กรณี 1 ไม่มีการระบุ charset ตัว Firefox จะใช้ Western (ISO-8858-1) แทน ซึ่งจะทำให้ตัวอักษรไทยอ่านไม่ออก
-กรณี 4 ระบุ charset เป็น tis-620 ซึ่งตรงกับการบันทึกแบบ ANSI ทำให้สามารถอ่านภาษาไทยได้
-กรณี 7 ระบุ charset เป็น utf-8 แต่ในตอนบันทึกไฟล์เป็นแบบ ANSI ทำให้ไม่สามารถอ่านภาษาไทยได้
สรุปผลการทดสอบ
1. การกำหนดวิธีการบันทึก (File Encoding) เป็นสิ่งที่สำคัญ เพราะ Firefox จะดูที่หัวของไฟล์ก่อน (BOM) โดยไม่สนใจ charset ที่ระบุ
2. charset จะถูกใช้เมื่อไฟล์นั้นถูก Save มาแบบ ANSI เท่านั้น คือเป็น Text file ธรรมดาที่ไม่มีการ Encode ใดๆ ซึ่งตัวอักษรไทยจะเป็น 8 บิตตาม TIS-620 และไม่มีหัวไฟล์ (BOM)
3. การเลือกกำหนด charset เป็น tis-620 จะดีกว่าการเลือกแบบอื่น เพราะไม่ว่าจะ Save แบบไหนก็ใช้ได้หมด
ข้อแนะนำ
แม้การกำหนด charset เป็น tis-620 จะดูปลอดภัยที่สุด แต่แนวโน้มปัจจุบัน โปรแกรมต่างๆ หันมาใช้ UTF-8 เป็นมาตรฐานในการติดต่อมากขึ้น ดังนั้นเพื่อความเข้ากันได้ในอนาคต ควรใช้ File Encoding และ charset เป็น UTF-8 ทั้งหมด
No comments:
Post a Comment