ปัญหาภาษาไทย TIS-620 กับ AJAX

พอดีเมื่อวานนี้มีเพื่อนถามมาทาง MSN ว่าเว็บมีปัญหาใช้ภาษาไทยกับ AJAX ไม่ได้ คือส่งภาษาไทยไปแล้ว อ่านไม่ออกใน MySQL ส่วนตัวนั้นมีประสบการณ์เกี่ยวกับปัญหาภาษาไทยมาบ้าง ถึงจะไม่มาก แต่ก็พอจะมั่นใจได้ว่า AJAX ไม่น่ามีปัญหากับภาษาไทย แต่มันไม่ใช่กับกรณีนี้ มาดูกันที่ส่วนประกอบต่างๆกันก่อน Web Page (TIS-620) + AJAX (TIS-620) <–> PHP(TIS-620) <–> MySQL (TIS-620) ดูๆจากข้างต้นก็ไม่น่าจะมีปัญหาอะไร อย่างแรกผมเอา FireBug จับ XHR ดูก่อนเลย เป็น HTTP Post และพบว่าอ่านไทยไม่ออกครับ ผมแปลกใจมากๆ ทั้งๆที่ Header บอกว่า charset เป็น TIS-620 ลองถาม Google ดูจึงพบว่า AJAX มีปัญหากับ TIS-620 จริงๆด้วย เพราะมันส่งเป็น UTF-8 (จริงๆมีวิธีเปลี่ยนแต่ค่อนข้างยุ่งยาก) ดังนั้นภาพข้างบนจึงผิด จริงๆต้องเป็นแบบนี้…

AJAX + JSON ด้วย script.aculo.us (Prototype) และ JSON-Lib

คล้ายๆกลับบทความ สร้าง AJAX ด้วย Dojo และ JSON โดยคุณ We– แห่ง Java and Oracle Blog แต่ผมนำมาเขียนด้วย script.aculo.us (Prototype) และ JSON-Lib แทน ด้วยเหตุผลที่ว่า 1. ใช้ script.aculo.us หรือ Prototype เพราะไม่เคยใช้กับ Java Project มาก่อน 2. ใช้ JSON-Lib เพราะมัน Powerfull กว่า Standard JSON Library ที่ json.org นั่นเอง สำหรับพื้นฐาน AJAX คืออะไร JSON คืออะไร หาอ่านกันตามสะดวกนะครับ ผมขอไม่ Feed ให้มากขนาดนั้น ว่าแล้วก็ลุยกันเลยครับ