การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว

การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว

PHP CODE FATHER โปรแกรมช่วยสร้างโค้ด โปรเจ็ค PHP+MySQL+Boostrap ใช้งานง่าย ๆ


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

ผมเองก็เช่นกัน เมื่อกันเจอบ่อยมาก ทีแรกไม่รู้ว่าเป็นเพราะอะไร ทำเอางง ไปไม่เป็นเลยทีเดียว
ก็ได้ลูกพี่ใหญ่ของเรานี่หล่ะ ช่วยเอาไว้ "พี่กูเกิ้ล" 

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

โค้ดตัวอย่าง
***************************************************
<!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 กันนะครับ

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

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

ซึ่งไม่ถูกต้องแต่ถ้าเราใช้ utf-8 จะแสดงผลได้อย่างถูกต้อง

ดังนั้นในขั้นตอนของการสร้างไฟล์ PHP เราควรกำหนดค่า charset ให้เป็น utf-8 เสมอนะครับ
เช่น <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

แล้วปัญหาการแสดงผลภาษาไทยผิดเพี้ยน เป็นภาษาต่างดาว ก็จะหมดไปครับ...

ย้อนกลับ กลับหน้าแรก