PHP : can’t display thai on PHP page
ปัญหาโลกแตกสำหรับนักพัฒนาเว็บที่ต้องยุ่งเกี่ยวกับฐานข้อมูล โดยเฉพาะการแสดงผลในเรื่องภาษาที่ไม่ใช่ภาษาอังกฤษ มักจะประสบปัญหาว่า บนหน้าเว็บเพจ PHP แสดงเป็นตัวอักขระที่อ่านไม่ออก หรือแสดงเป็นเครื่องหมาย ???? เป็นต้น
สำหรับตัวอย่างนี้
ฐานข้อมูล MySQL มีการสร้างโดยกำหนด charset = UTF8 ดังนั้นบน PHP web page ก็จะต้องกำหนด charset ให้ตรงกันด้วย 2 ตำแหน่งที่มักลืมกำหนด charset มีดังนี้
1. การกำหนด charset ในการเชื่อมต่อฐานข้อมูล
$conn=mysql_connect($serverIp,$userName,$password); mysql_set_charset(‘utf8’,$conn); # <<< เพิ่มบรรทัดนี้เข้าไป $link=mysql_select_db($dbname,$conn); |
2. การแสดงผลบน html
โดยปกติเรามักสร้างไฟล์ header.php ไว้อยู่แล้ว เพื่อง่ายต่อการแก้ไข เราก็จะเข้าไปแก้ที่ไฟล์เดียวเลย โดยเพิ่มบรรทัดนี้เข้าไปตรง META
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> |
เพียงเท่านี้ก็สามารถแสดงเว็บเพจที่มีข้อความภาษาไทย หรือ ภาษาท้องถิ่นต่างๆได้แล้วครับ