วิธีแก้ปัญหาหน้าเว็บแสดงผลภาษาต่างดาว (ตัวอักษรยี่กือ)
ปัญหานี้เกิดจาก Character Encoding (ชุดรหัสตัวอักษร) ไม่ตรงกันระหว่าง Database, โค้ดเชื่อมต่อ และหน้าเว็บ สามารถแก้ไขได้ตาม 3 ขั้นตอนนี้ครับ
1. กำหนด Encoding ตอนเชื่อมต่อ Database (สำคัญที่สุด)
ต้องระบุให้ระบบดึงข้อมูลด้วย utf8mb4 เสมอ ตัวอย่างเช่น:
หากใช้ PHP (PDO):
$dsn = "mysql:host=localhost;dbname=your_db;charset=utf8mb4";
$pdo = new PDO($dsn, $username, $password);
หากใช้ PHP (mysqli):
$conn = mysqli_connect("localhost", "user", "pass", "your_db");
mysqli_set_charset($conn, "utf8mb4"); // บรรทัดนี้สำคัญมาก!
2. กำหนด Meta Tag ในหน้า HTML
ใส่แท็กนี้ไว้ในส่วน <head> เพื่อบอกให้เบราว์เซอร์อ่านค่าเป็น UTF-8:
<meta charset="UTF-8">
3. ตั้งค่า Collation ใน Database (phpMyAdmin)
เช็กตาราง (Table) และคอลัมน์ (Column) ในฐานข้อมูล ให้เปลี่ยน Collation เป็น:
utf8mb4_unicode_ci
⚠️ หมายเหตุ: หากข้อมูลเดิมใน Database กลายเป็นภาษาต่างดาวไปแล้ว (เสียตั้งแต่ตอนบันทึก) ต้องแก้ 3 ข้อด้านบนให้เสร็จก่อน แล้วทำการบันทึกข้อมูลเข้าไปใหม่อีกครั้งครับ