หลายคนที่เขียนเว็บด้วย php และ mysql 4.0 พออัพเกรดเซิร์ฟเวอร์มาเป็นรุ่นใหม่ ที่ใช้ mysql 4.1 หรือ 5.0 แล้วเอาโค้ดเดิม และ database เดิมมารัน มักจะพบปัญหาการ query ข้อมูลภาษาไทยออกมาแล้วอ่านไม่ได้ กลายเป็น ??????????????????????????????????? หมด
ส่วนมากนึกว่า mysql รุ่นใหม่ มีบั๊กกับภาษาไทย เลยพาลไม่ยอมอัพเกรด ขอใช้รุ่นเก่าต่อ ส่วนนึงเป็นเพราะตำรา php + mysql ในบ้านเรา ออกมานานแล้ว ไม่อัพเดทเป็นรุ่นใหม่ บ้านเราก็นิยมอ่านเป็นหนังสือ มากกว่า online เสียด้วย
พอดีไปเจอเว็บนี้ กล่าวถึงปัญหาดังกล่าว และแนะนำวิธีแก้ซึ่งง่ายมาก เลยชวนไปอ่านกัน
http://www.appservnetwork.com/modules.php?name=News&file=article&sid=5
zealot แก่ๆ คงรู้กันดีอยู่แล้วมั๊ง :-)
- kamthorn's blog
- Login to post comments
- 1067 reads
ขนาดผม ใช้ งาน หรือ ทำเว็บไซต์ ที่ ใช้ UTF-8 มากกว่า 2 ปี อ่านยังงง ๆ เลย (คงเพราะว่าตกภาษาไทยมั้ง)
อืมม ยังไง ก็ตาม สำหรับ PHP Zealots ทุกท่าน ขอแนะนำให้ อ่าน จาก
เอกสารของ MySQL โดยเฉพาะ หัวข้อ ที่ 10 นะครับ พยายามทำความเข้าใจ เรื่องนี้ให้ เยอะๆ
ถึงที่มาที่ไป ว่า ทำไม จะเป็นประโยชน์ในภายภาคหน้า 55+
http://dev.mysql.com/doc/refman/4.1/en/charset-connection.html
อ้อ จะใช้ วิธีลัด ของผมก็ได้
Step แรก คือ ออกแบบ ข้อมูล กำหนด ตาราง โดย Set Collation , หรือ ทุกอย่างให้ เป็น utf8_unicode_ci
Step สอง สำหรับ ทุกครั้งที่มี การ ติดต่อกับ ฐานข้อมูล ทั้ง ดึงข้อมูล แก้ไข หรือ ปรับปรุง ข้อมูลก็ เรียก ใช้ Query ทั้ง 3 คิดว่า น่าจะใช้ได้
ที่กล่าวๆ มาทั้งหมด เป็น วิธีลัด นะคับ สำหรับ หลักการและเหตุผล ต่างๆ นาๆ อย่างที่ บอกแนะนำให้ อ่านจาก เอกสารของ MySQL จะดีมากๆ คับ อิอิ
แบบว่า อธิบาย เป็น ทางการ ไม่ค่อยเป็น น่ะ
ตรง
$charset[] = ....
$charset[] = ....
$charset[] = ....
for(...)
{
....
}
ใช้
foreach(...) ได้ม๊ะครับ
:D
โอ้ววว คุณป้อมล้ำลึกมาก
นับถือ ๆ
Surachai Tepkhumdee
ปกติผมใช้