พอดีพึ่งหัดใช้ mysqli หนะครับ แต่ insert ข้อมูลแล้วเป็นภาษาแบบนี้
ส
เท่าที่ผมพยายามลองแก้ แต่ไม่ได้ผลครับ
$mysqli -> query(“SET NAMES ‘utf8’ COLLATE ‘utf8_general_ci’;”);
$mysqli -> query(“SET character_set_results=utf8”);
$mysqli -> query(“SET character_set_client=utf8”);
$mysqli -> query(“SET character_set_connection=utf8”);
$mysqli -> query(“SET names utf8”);
ท่านผู้รู้ช่วยทีนะครับ ขอบคุณมากครับ
mean
2
ลองเหลือเพียง $mysqli -> query(“SET names utf8”); พอครับ
หน้าเพ็จที่ submit ข้อมูล ต้อง charset เป็น utf-8 ด้วยเช่นกันครับ
ดู collection ใน phpmyadmin เป็น utf8 ด้วยครับ
ลองที่ท่านแนะนำมา ยังไม่ได้ครับ เป็นเหมือนเดิม ขอบคุณครับ
icez
4
ไอ้ที่เป็ฯ &xxxx; เกิดจาก browser ที่ใช้ เลือก charset เป็น latin / western ครับ ทำให้มันเข้ารหัสเป็นภาษาไทยตรงๆ ไม่ได้
ให้ตรวจสอบ encoding ของ browser นะครับ ว่ามันเลือกเป็นอะไรอยู่
สำหรับคำถามไม่ควรโพสต์ในหมวด Article/How-to ครับ ขอย้ายนะครับ
mysql_query(“SET NAMES tis620”);
เอาไว้ตรงใต้ connect base ครับ ก็จะสามารถอ่านภาษาไทยได้ ของผมใช้แบบนี้
iCafe
7
จะตอบก็อ่านให้ดีก่อนนะ ท่านออกญา
icez
8
อ้อ สำหรับ mysqli ถ้าจะ set charset ใหใช้
$mysqli->set_charset(‘utf8’); ได้เลยครับ ไม่ต้องไปขียน qury เอง
ยังเป็นเหมือนเดิมอยู่เลยครับ เป็นแต่ฐานข้อมูลที่ใช้ mysqli นะครับ
icez
12
ตามนี้ครับ
ย้ำว่าไม่เกี่ยวกับ mysqli ครับ
ตอนนี้ตั้งเป็น ยูนิโค้ด utf8 แล้ยนะครับ
หรือว่า mysqli จะบันทึกข้อมูลแบบนี้อยู่แล้วรึเปล่าครับ เพราะก๊อปข้อมูลมาแปะที่บอร์ด จะออกมาเป็นภาษาปกติได้
icez
14
เขียนใน code เป็น utf แต่แน่ใจเหรอครับว่า browser เลือกเป็น utf จริง?
ลองกด view > encoding ดูว่ามันเลือกอะไรอยู่ด้วยครับ
icez
16
ในหน้าเว็บคุณสิครับไม่ใช่ phpmyadmin
ในหน้าเว็บได้นะครับ แต่ปกติ ไม่ได้เก็บข้อมูลเป็นรหัสแบบนี้ไม่ใช้เหรอครับ
icez
18
หมายถึง charset ในหน้าเว็บคุณน่ะ มันไม่ใช่ utf8 หรือ tis ครับ
ทำให้ตัวอักษรภาษาไทยถูก web browser ที่คุณใช้ convert เป็น html entitles
ที่ไว้ escape ภาษาที่ไม่เข้ากับ charset เป็นลักษณะของ &#xxxx;
ซึ่งถ้าคุณกด view source ที่หน้าเว็บคุณเอง มันก็จะเป็นแบบนี้เหมือนกัน