[PHP] ภาษาไทยใน MySQL 5 กลายเป็น ??? ทั้งๆ ที่ตั้งเป็น UTF-8 แล้ว

  • 0 ตอบ
  • 4096 อ่าน
*

อั๋น ทรงวุฒิ

  • Sr. Member
  • ****
  • 321
  • 3
  • แพร่ เวียงโกศัย
    • ดูรายละเอียด
    • songwut.biz
ยุคนี้ อะไรก็ต้อง UTF-8

ทั้ง Database ทั้งตัว Html (Google เก็บข้อมูลเว็บเป็น UTF-8)

ผมก็ลองใช้บ้าง เพราะ Host ส่วนใหญ่ก็เป็น UTF-8 ทั้งนั้น


คราวนี้เจอปัญหาเข้า

เอา PHP ติดต่อกับข้อมูลใน MySQL ได้ภาษาไทยเป็น ? ? ? หมดเลย

ปกติก่อนจะบันทึกใน MySQL ได้ทำ Code ทดสอบไว้ ประมาณว่า

<?
echo $query;

?>

เพื่อโชว์ค่า SQL ก่อน ซึ่งในตัวแปรที่เก็บข้อมูลภาษาไทย ก็แสดงถูกต้อง

แต่พอเข้า MySQL แล้ว Select ออกมาโชว์ปุ๊บ กลายเป็น ? ? ? หมด

เปิดดูใน phpmyadmin ก็ได้ผลเหมือนกัน คือ ? ? ?


MSN คุยกับเจ้าของ Host ก็ได้รับหน้าเว็บจาก Google กลับมาให้อ่าน (ผมก็ค้นเจอตั้้งแต่แรกแล้วล่ะ)


สรุปคือ ผมเลย Dump ฐานข้อมูลออกมา ด้วยคำสั่ง export เป็น SQL นี่แหละ

เพื่อจะลบทิ้งแล้วสร้างใหม่ ก็มาเห็นตรงท้าย structure เข้า


มันเป็น latin1 ครับ !


เปลี่ยนเป็น UTF8 ก็เอวังทันที


เสียเวลาไป 1 คืน (งานเร่งด้วยนะ)