หลายท่านเชี่ยวชาญ utf-8 อยู่แล้ว ผ่านเลยครับ
Quote
Apache 2.2.4
PHP 5.2.3
MySQL 5.0.45
phpMyAdmin-2.10.2
OS:XP SP2
default lang : eng
charset และ collation ทุกที่เป็น utf-8 หมดทั้ง db และตาราง
ภาษาApache Environment th
ก็เข้าเรื่องเลยนะครับ อาจจะตรงกับที่หลายๆคนอยากรู้ เพราะผมอ่านมาจากเว็บนี้ หลายกระทู้แก้ส่วนใหญ่กระทู้จะนานแล้ว แก้ตามแล้วไม่ได้ผล ที่ไม่ได้คงเป็นเพราะเวอร์ชันใหม่กว่าหรือปัจจัยอย่างอื่น ก็ไม่ทราบได้ เลยลองๆดู(ได้มาพักนึงละแต่วันนี้มีเหตุต้องมาโพส)
หลายๆคนคงเป็น ตอนจะใช้ utf-8 คงใช้ code ดังนี้
ส่วนของหน้าเว็บ
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>
ส่วนติดต่อ
mysql_query("SET NAMES 'UTF-8'");
mysql_query("SET character_set_results='UTF-8'"); // <-- จริงๆบรรทัดนี้ไม่ต้องก็ได้ บรรทัดบนรวมอยู่แล้วเอ๊ะก็ดูจะหมดแล้วนี่หว่า ทั้งหน้าเว็บก็แสดงไทยได้ดี แต่ทำไมเข้าไปดูใน phpmyadmin เป็นแบบนี้
ยึกๆยือๆ แต่ไม่ใช่ ????? นะครับ คนละกรณีกัน(ขอแก้นะเพราะ) เว็บนี้ char ไม่ตรงกันทำให้เพี้ยน
แก้ไงดีง่า ไม่รู้จะตั้งไรแล้ว เครียดๆ
มาๆ เรามาดูกันว่า ทำไงให้หน้าเว็บและ phpmyadmin อ่านไทยได้สมบูรณ์
โค้ดเจ้ากรรมมันอยู่ที่
UTF8 กับ UTF-8 ไม่เหมือนกันตอนติดต่อ
ซึ่ง UTF8 จะอ่านไทยได้ใน phpmyadmin ด้วย แต่ UTF-8 phpmyadmin อ่านไม่ออก ยึกๆยือๆ รู้สึกปัญหานี้หลังๆ คงเคยเจอกันแน่นอน
เพื่อความสะดวก ในไฟล์ที่ติดต่อ database เป็นแบบนี้ครับ จะได้เพิ่มแค่ที่เดียว
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "xxxx";
$dbname = "yourDB";
$dbc = mysql_connect($dbhost,$dbuser,$dbpass) or die ("Can not connect MySQL");
$dbs = mysql_select_db($dbname) or die ("Can not connect database");
mysql_db_query($dbname,"SET NAMES UTF8");//เพิ่มตรงนี้บรรทัดเดียว สบายแล้ว สากลๆ utf8หน้าอื่นก็ คิวรี่ปกติเลยครับ
** ถ้าเกิดใช้ utf8 แล้วข้อมูลเก่า utf-8 เอามาใช้ไม่ได้นะครับ บอกก่อน **
แต่ถ้าเปลี่ยนกลับเป็น mysql_db_query($dbname,"SET NAMES UTF-8"); จะอ่านของเก่าได้แต่ phpmyadmin อ่านไม่ออก
ทีนี้ว่าในส่วนของ Browser กันบ้าง
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/> มีค่าเท่ากับ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF8"/>
คือใน browser ใช้ได้เหมือนกันครับ แต่ตัวบนดูจะเป็นมาตรฐานกว่า
** แนะนำสำหรับคนพึ่งเปลี่ยนมาใช้ PHP5 (มีอีกเยอะเลยที่ยังใช้4อยู่ เพราะห่วงเรื่องภาษา กับ ความเคร่งครัดของ5นี่แหละ) หรือ ใช้ tis-620 กับ php5 ยังไงลองมาใช้ utf-8 ดูสิครับ แล้วคุณ จะหมดปัญหาเรื่องภาษาไปเลย ยืดหยุ่นกว่ามาก เมื่อทำทุกอย่างได้เข้าที่แล้ว
ปล.ผิดพลาดขออภัยด้วยละกัน
ที่คิดจะเขียนเพราะวันนี้ เถียงกับคนอยู่ว่า เว็บอ่านออกพอใน DB อ่านไม่ออกเป็นปกติ
ใครๆก็เป็นกัน
ผมก็หงุดหงิดสิ ยิ่งเป็นคนเถียงกับผมมีอาชีพ programer ด้วยน่าจะรู้ code ถ้ามันตรงกันจริง ต้องอ่านได้สิ
ทำงานที่ DB บางทีเร็วกว่าเยอะเลย ก็เลยได้เรื่องนี้มาเล่ากันฟัง
สมาชิกใหม่ฝากตัวด้วยครับ
ไว้ครั้งหน้าถ้ามีเวลา จะมาพูดถึง mod rewrite กันครับ
This post has been edited by ZePhy: 09 August 2007 - 10:36 AM

Help














