ปัญหาภาษาไทย 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) [...]

Multi programming language on Eclispe

Eclipse ของเครื่องผมเองครับ ใช้เขียน Java, J2EE, PHP, Flex, GWT และแน่นอนพวกภาษาพื้นฐานของเวปอย่าง HTML, JavaScript, CSS ก็เขียนบน Eclipse เช่นกัน
โดย Plug-in หลักๆที่ผมใช้มีดังนี้
Eclipse Web Tools สำหรับ J2EE, JavaScript, CSS, HTML
PHPEclipse สำหรับ PHP
Subclipse สำหรับ SVN
Googlipse สำหรับ GWT (Google Web Toolkit)
Flex Builder 2 สำหรับ Flex
ป.ล. จริงๆเปิด Web Browser ใน Eclipse (มากับ Web Tools) เพื่ออัพเดท blog ยังได้เลยนะ อิอิ

How to prevent Missing Image in HTML

ปกติหากเราใช้ Tag Img แล้วรูปไม่มีอยู่จริงก็จะเป็นแบบด้านล่างนี้

วิธีการง่ายๆหากรูปที่ต้องการจะ load จริงๆไม่มี ก็ให้ไป load รูป default ขึ้นมาแทนดังนี้ (ทดสอบบน IE6 และ Firefox2)
<img onerror="this.src=’default.jpg’;" src="target.jpg">
ถ้าจำไม่ผิดเมื่อก่อนสามารถใช้ lowsrc แทน onerror ด้านบนได้ (นานมากแล้ว ผมจำไม่ได้จริงๆว่า HTML เวอร์ชั่นเท่าไหร่)
หวังว่าคงมีประโยชน์นะครับ