GORAGOD.com

ปัญหาของ UTF-8

ลังจากเปลี่ยนใจมาใช้ UTF-8 ได้สักพัก ออกแบบเว็บเพจไปเรื่อยๆ ก็ได้พบอุปสรรคใหม่ๆ ของการใช้ UTF-8 โดยเฉพาะกับ AJAX ซึ่งทีแรกก็คิดว่าน่าจะถูกกับ AJAX เป็นยิ่งนัก สิ่งต่างๆ ที่ผมจะกล่าวถึงในวันนี้ เป็นเทคนิคเล็กๆน้อยๆ ที่ผมพบและได้นำมาใช้ (แต่ก็ยังอาจมีบางอย่างที่ยังไม่ถูกต้องนัก) ซึ่งก็คงจะต้องตรวจสอบและแก้ไขกันต่อไป

1.บาง Server ไม่ถูกกับ UTF-8 เท่าที่ทราบ สาเหตุนี้ เกิดจากได้มีการกำหนด default Encoding เป็น TIS-620 ไว้ครับ ทำให้ไม่สามารถใช้ไฟล์ที่เป็น UTF-8 บน Server ได้ และถึงแม้จะใช้ได้ก็ต้องคอยเปลี่ยน Encoding ของเพจตลอดเวลา อาการนี้เท่าที่พบ ผมพบว่ามักจะเกิดกับ Free Host (ก็ของมันฟรี) ซึงการแก้ไขที่ตัว Server คงเป็นไปได้ยาก

การแก้ไข ง่ายสุดก็กลับไปใช้ TIS-620 ครับ (ง่ายดี) แต่ก็ยังพอมีวิธีอื่นครับ เช่นกำหนด default Encoding ใหม่ให้เป็น UTF-8 โดยการแทรกโค้ดในไฟล์ .htaccess

AddDefaultCharset utf-8

แล้ว save ลงบน root ของเว็บ

ตัวอย่างสำหรับกรณีนี้ก็ saiyaithai ครับ เช่น http://rmutl.saiyaithai.org

2.ไม่สามารถใช้ SESSION หรือ COOKIE ได้ ถึงแม้จะใส่ session_start() และ ob_start() แล้วก็ตาม กรณีนี้มักจะเกิดจากการ Save ไฟล์เพจแล้วมี BOM ติดไปด้วย (ผมเคยพูดถึงเรื่องนี้ไปแล้ว ไปหาอ่านเอาละกัน) กรณีนี้ทำให้ผมเลิกใช้ Dream ไปเลยหันไปใช้ EditPlus แทนครับ

แล้วผมจะมาเขียนเพิ่มนะถ้าเจออะไรใหม่ๆ