Page 1 of 2

ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 25/01/2009 3:22 pm
by closey
เวลาที่บันทึกข้อมูลที่เป็นภาษาไทยบนหน้าเวบนะค่ะ
พอเข้าไปดูในฐานข้อมูลที่ mySQL จะออกมาเป็น ÇÔ·ÂÒÈÒʵúѳ±Ôµ(à·¤â¹âÅÂÕ¤ÍÁ¾ÔÇàµÍÃì) แบบนี้อ่ะค่ะ

ในทางกลับกัน ถ้าบันทึกข้อมูลโดยตรงในฐานข้อมูล
เมื่อเรียกแสดงที่หน้าเวบก็จะออกมาเป็น ?????????????? แบบนี้อ่ะค่ะ

ฐานข้อมูลเซ็ตค่าเป็น tis-620 น่ะค่ะ
โค้ดที่เขียนก็เซ็ตเป็น tis-620 ค่ะ
แล้วเคยไปเซ็ตค่าให้สามารถรันในutf8ได้ แต่ก็เหมือนเดิมน่ะค่ะ
ต้องแก้ไข/เซ็ตค่า ตรงไหนค่ะ

หน้าเวบเพจ
Image

หน้าฐานข้อมูล
Image


ป.ล. ลองเข้าไปหาอ่านในบทความ php แล้ว แต่หาไม่เจอเลยค่ะ

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 25/01/2009 10:21 pm
by demonxiii
จากที่ผมเจอผมใช้วิธีนี้ครับ ไม่รู้ว่าเขียนด้วยภาษาอะไร แต่ผมเขียน PHP ผมตั้งค่าทั้งหมดเป็น UTF8_Unicode_ci ใน MySQL

ส่วนตรง Connection ใต้บรรทัดที่ติดต่อฐานข้อมูล Connection ก็พิมพ์ mysql_query("SET NAME UTF8, $ชื่อการติดต่อ"); ประมาณใกล้นี้ครับ

พอดีหนังสือไม่อยู่กะตัว

ตอนเซฟ PHP กำหนด Encoding ให้เป็น UTF8 ด้วยครับ

พูดง่ายๆ ต้องปรับทุกอย่างให้เป็น UTF8 ให้หมด ทั้ง Encoding ของ Dream ด้วย

เวลารันดูผล ให้ปรับ Encoding ของ Internet Exploer ให้เป็น Unicode ด้วยนะครับ

ทำแล้วให้

ป.ล. PHP5 นะครับ

พอดีอยู่หน้าคอมเอาโค้ดให้ดู จากข้างบนนะครับ

function con2db()
{
$conn = mysql_connect("localhost","root","ekachai");
mysql_query("SET NAMES UTF8",$conn);
$database = mysql_select_db("his",$conn);
}

ที่ไฮไลไว้คือ ส่วนที่ตั้งค่าครับ แล้วเวลาเซฟ PHP ตรงช่องล่างสุดที่เขียนว่า Converter ให้เลือกเป็น UTF8
แล้วเวลาเซฟทุกไฟล์ต้องเซฟเป็น Converter ให้เป็น UTF8 ให้หมด

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 27/01/2009 4:19 pm
by closey
ลองแก้ตามที่บอกแล้วน่ะค่ะแต่ยังไม่ได้
เลยลองแคปรูปโค้ดที่แก้มาให้ดู
ถูกผิดตรงไหนช่วยบอกด้วยนะค่ะ

ฐานข้อมูล
Image

dreamweaver
Image

connect
Image

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 28/01/2009 12:42 pm
by demonxiii
closey wrote:ลองแก้ตามที่บอกแล้วน่ะค่ะแต่ยังไม่ได้
เลยลองแคปรูปโค้ดที่แก้มาให้ดู
ถูกผิดตรงไหนช่วยบอกด้วยนะค่ะ

ฐานข้อมูล
Image

dreamweaver
Image

connect
Image
ขอแก้ตรงนี้นิดนึงครับ
$link = mysql_connect($host,$user,$pwd);
mysql_query("SET NAMES UTF8",$link);

ขอให้วางไว้ใต้ ตัว Connection ครับ แล้วกำหนดด้วยว่า Connection ตัวไหน เพราะที่ดูจากภาพ คุณเซ็ทตัวหนังสือแต่ไม่ได้กำหนดว่า Connection ตัวไหน

แล้วอีกอย่างครับ
Image

ตรงนี้ชอบลืมกันมากครับ แต่มีผลจริงๆ EDITPLUS นะครับ เซฟไฟล์ PHP

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 29/01/2009 12:29 pm
by closey
ขอบคุณสำหรับคำแนะนำค่ะ
ตอนนี้แก้ได้แล้วค่ะ
แต่เปลี่ยนจาก utf8 เป็น tis620 แทนนะค่ะ

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 01/01/2011 10:18 pm
by ปวดตับ
ขอบคุณมาก ๆ เลยครับ ใช้วิธีนี้ได้้ผลเลยครับ

mysql_query("SET NAMES UTF8",$conn);

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 08/11/2012 11:31 am
by Str
ขอบคุณครับที่แบ่งปันความรู้ดีดี

Re: ถาม : การบันทึกข้อมูลที่เป็นภาษาไทยใน mySQL หน่อยค่ะ

Posted: 08/11/2012 6:36 pm
by MikaruKinji
ข้อมูลขาเข้า ขาออกและฐานข้อมูล ต้องเป็นฟอแมต เดียวกันครับ ถึงจะเป็นภาษาไทย
และในปัจจุบันนิยมใช้ utf8 นะครับ