แนวทางการแก้ปัญหา mysql insert ภาษาไทยไม่ได้

แชร์ประสบการณ์เขียนโค้ด php + Mysql เล็ก ๆ น้อย ๆ เผื่อจะเป็นประโยชน์กับใครสักคน...
สำหรับมือใหม่ ๆ ที่เริ่มเขียนเว็บไซต์อาจจะต้องเจอปัญหาการแสดงผลภาษาไทยผิดเพี้ยนนี้อย่างแน่นอน
ผมเองก็เช่นกัน เมื่อกันเจอบ่อยมาก ทีแรกไม่รู้ว่าเป็นเพราะอะไร ทำเอางง ไปไม่เป็นเลยทีเดียว
ก็ได้ลูกพี่ใหญ่ของเรานี่หล่ะ ช่วยเอาไว้ "พี่กูเกิ้ล" 

ปัญหานี้มันเกิดขึ้นเมื่อเราทำการเชื่อมต่อฐานข้อมูล คือ หากเป็นไฟล์ธรรมดาก็ไม่มีปัญหาอะไรใช่ไหมครับ
แต่พอเอาโค้ดเชื่อมต่อฐานข้อมูลมาไว้ด้านบน ปัญหาก็เกิดขึ้นมาซะงั้น
ก็พอจะสรุปปัญหาคร่าว ๆ ที่เจอบ่อย ๆ ได้ดังนี้ครับ

โค้ดตัวอย่าง
***************************************************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?
$host = "127.0.0.1";
$user ="root";
$password_admin = "123456";
$database = "code-father";
$link = mysql_connect($host,$user,$password_admin ) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
//mysql_query("SET CHARACTER SET tis620");
mysql_query("set character set utf8");

?>
<html>
<head>
<title>www.code-father.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
</head>

<body>
สวัสดีครับ
</body>
</html> 

***************************************************
ฐานข้อมูล เดี๋ยวนี้ ถ้าเราลงใหม่ ระบบจะเซ็คค่าดีฟอล์ล ชุดรูปแบบตัวอักษรให้เป็น UTF-8 อยู่แล้ว
ซึ่งเป็นที่นิยมและสามารถใช้งานได้ หรือ รอบรับได้หลายภาษา หรือ เกือบทั้งหมด
***แนะนำให้ใช้งาน UTF-8 กันนะครับ

จากโค้ดตัวอย่าง
ฐานข้อมูลเป็น Utf-8 แต่ไฟล์ PHP เป็น windows-874 หรือ tis-620 ผลที่ได้จะกลายเป็นภาษาต่างดาว หรือ ผิดเพี้ยนครับ คำว่า "สวัสดีครับ" จะแสดงผลเป็น 

"เธชเธงเธฑเธชเธ?เธตเธ เธฃเธฑเธ " 

ซึ่งไม่ถูกต้องแต่ถ้าเราใช้ utf-8 จะแสดงผลได้อย่างถูกต้อง
  1. ดังนั้นในขั้นตอนของการสร้างไฟล์ PHP เราควรกำหนดค่า charset ให้เป็น utf-8 เสมอนะครับ
    เช่น charset=utf-8
  2. และต้องกำหนด Collation ใน mysql เป็นแบบ utf8 ตามตัวอย่างในรูปด้านล่างด้วยนะครับ
 

 
แล้วปัญหาการแสดงผลภาษาไทยผิดเพี้ยน เป็นภาษาต่างดาว ก็จะหมดไปครับ...
หวังว่าบทความนี้จะเป็นประโยชน์กันผู้ที่กำลังหาวิธีแก้ปัญหา ข้อมูลจาก mysql เป็นภาษาต่างด้าวกันอยู่นะครับ
ขอบคุณทุกท่านที่แวะเข้ามาเยี่ยมชมเว็บไซต์ของเรา www.code-father.com


My Article
แนะนำเว็บสูตรหวยออนไลน์ ดูฟรี