session_start() bug ของ UTF-8
บางคนอาจเคยเจอ error นี่เมื่อต้องใช้ session หรือ แม้แต่ cookie กับเพจที่เป็น UTF-8 ถึงแม้ว่า page นี้ตอนที่เป็น ANSI (แบบ text ที่ใช้กับ TIS-620) จะไม่เคยมีปัญหาใดๆ ปัญหานี้เกิดจากการที่เมื่อ Save เพจเป็น UTF-8 แล้ว โปรแกรมที่ใช้ จะมีการใส่ BOM (byte order mark) ลงไปในเพจด้วย ซึ่งจะทำให้ session_start() ไม่ได้อยู่อักษรตัวแรกของเพจ ก็เลย error ครับ
ปัญหานี้มักจะเกิดหากมีการแก้ไขเพจผ่าน Notepad ของวินโดวส์ หรือด้วย Dreamwaever ครับ
การแก้ไข ก็คือให้ใช้โปรแกรม แปลง ที่จะแปลงเป็น UTF-8 ที่ไม่ใส่ BOM ครับ เช่น EditPlus โดยการเปิดไฟล์แล้ว SaveAs เป็น UTF-8 ครับ