ปัญหาภาษาไทย 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 (จริงๆมีวิธีเปลี่ยนแต่ค่อนข้างยุ่งยาก)
ดังนั้นภาพข้างบนจึงผิด จริงๆต้องเป็นแบบนี้
Web Page (TIS-620) + AJAX (UTF-8) <–> PHP(UTF-8) [...]

AJAX อ่านว่าอะไร

เลือกอ่านตาม link ด้านล่างเลยครับ
http://education.yahoo.com/reference/dictionary/entry/Ajax
http://www.ajax.in.th/forums/index.php?topic=282
http://www.merriam-webster.com/dictionary/ajax
ป.ล. Apache อ่านว่า “อะแพช’ชี” นะครับ

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 ให้มากขนาดนั้น ว่าแล้วก็ลุยกันเลยครับ

AJAX Comparison Matrix

ใช้ AJAX ด้วย Dojo แล้วก็ GWT มานานแล้วพอสมควร แต่ก็ยังรู้สึกว่ามันยังไม่ใช่ซะทีเดียว