nobuts

Thu 27 Dec 2007 10:55:13
Thu 27 Dec 2007 10:55:13
สวัสดีครับ รบกวนอีกครั้งนะครับ ผมมีปัญหากับ PHP MyAdmin 2.10.2 มันไม่แสดงภาษาไทยใน field ต่างๆน่ะครับ ทั้งๆที่ผมกำหนด <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> แล้วก็ยังอ่านไม่ออก เป็นอย่างงี้
[URL=http://www.temppic.com/img.php?27-12-2007:1198727506_0.27248000.jpg][IMG]http://images.temppic.com/27-12-2007/images_vertis/1198727506_0.27248000.jpg[/IMG][/URL]
ช่วยแนะนำด้วยครับว่าจะทำอย่างไรให้มันอ่านออกเป็นภาษาไทยใน PHP MyAdmin
ขอบคุณล่วงหน้าครับ
webmaster

Thu 27 Dec 2007 16:30:29
Thu 27 Dec 2007 16:30:29
ต้องดูว่า content ที่แสดงนั้นเป็นอะไรด้วยครับ ถึงแม้ว่าจะใส่ meta tag ว่าเป็น utf แล้วก็ตามบางทีก็อาจจะไม่แสดงผลตามนั้นครับ ปกติผมจะ force browser ด้วยการใส่ Content-type ไว้ใน header ด้วย (ก็เอา content-type ใน meta tag ไปใส่ function header เท่านั้น) และอีกอย่างคือ database connection ที่สร้างขึ้นมานั้นเป็น charset ใดด้วยครับ ก็ force ให้ตรงกันด้วย SET NAMES ..... เอาครับ
nobuts

Thu 27 Dec 2007 19:48:25
Thu 27 Dec 2007 19:48:25
ครับ ผมก็อ่านเจอมาเหมือนกันเรื่อง SET NAMES แต่ผมก็ลองใช้ดูแล้วมันก็เหมือนเดิมน่ะครับ ไม่ทราบว่าผมใช้ผิดหรือเปล่า ช่วยยกตัวอย่างการใช้ SET Names ให้หน่อยได้มั้ยครับ
ขอบคุณครับ
webmaster

Thu 27 Dec 2007 20:19:37
Thu 27 Dec 2007 20:19:37
การจะใช้ SET NAMES ก็ต้องใช้หลังจากเริ่มการติดต่อ mysql_connect() แล้วถึงจะเป็นผลครับ เพื่อใช้การสื่อสารใน SESSION นั้นๆทั้งหมดถูกรับส่งใน Charset เดียวกันครับ เช่น
mysql_connect(....);
mysql_query("SET NAMES utf8");
mysql_select_db(....);
ในการทำงานของ MySQL นั้นจะมี Charset และ Collation 4 ระดับครับ
- ระดับ Server
- ระดับ Database
- ระดับ Table
- ระดับ Column
ที่สำคัญสุดคือ ระดับ Column เนื่องจากอยู่ในลำดับความสำคัญสูงสุด การรับส่งข้อมูลจะมีการเปลี่ยนแปลง เมื่อ Connection และ Column เป็นคนละ Charset กัน ซึ่งจะมีผลทำให้เกิดความผิดพลาดของข้อมูลได้ ผมอยากให้อ่าน http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
โดยเฉพาะย่อหน้าสุดท้าย
การตรวจดูว่า Webpage ใช้งาน Charset ใดด้วยคลิ๊กขวาแล้วเลือกที่ Page Properties ดูครับ
mysql_connect(....);
mysql_query("SET NAMES utf8");
mysql_select_db(....);
ในการทำงานของ MySQL นั้นจะมี Charset และ Collation 4 ระดับครับ
- ระดับ Server
- ระดับ Database
- ระดับ Table
- ระดับ Column
ที่สำคัญสุดคือ ระดับ Column เนื่องจากอยู่ในลำดับความสำคัญสูงสุด การรับส่งข้อมูลจะมีการเปลี่ยนแปลง เมื่อ Connection และ Column เป็นคนละ Charset กัน ซึ่งจะมีผลทำให้เกิดความผิดพลาดของข้อมูลได้ ผมอยากให้อ่าน http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
โดยเฉพาะย่อหน้าสุดท้าย
การตรวจดูว่า Webpage ใช้งาน Charset ใดด้วยคลิ๊กขวาแล้วเลือกที่ Page Properties ดูครับ

















