ตอนแรกแสดงผลในหน้าเว็บเป็นภาษาไทยได้แล้ว เพราะตั้งให้ทุกอย่างเป็น UTF-8 ครับ แต่ชื่อไฟล์ในฐานข้อมูลกลับเป็นภาษาต่างดาว
ทราบมาว่าต้องส่ง query "SET NAMES utf8" เพื่อให้ชื่อไฟล์ในฐานข้อมูลเป็นภาษาไทย พอเซ็ตแล้วก็เป็นภาษาไทยจริง ๆ ครับ
แต่การแสดงผลในหน้าเว็บกลับเป็น "???????????????" ตลอดเลยครับ
คือถ้าในฐานข้อมูลเป็นภาษาไทย ในหน้าเว็บจะเป็น "???"
ถ้าในฐานข้อมูลเป็นภาษาต่างดาว เช่น "รัà¸à¸¨à¸²à¸ªà¸•ร์ เฟซ3.jpg" ในหน้าเว็บจะเป็นภาษาไทยครับ
ตอนนี้ทุกอย่างเป็น UTF-8 ดังนี้ครับ:
1. ไฟล์ HTML ที่ใช้อัปโหลดไฟล์:
- <meta http-equiv="Content-Type" content="text/html">
- <meta charset="UTF-8">
- encode ไฟล์เป็น UTF-8 ครับ
2. ไฟล์ PHP ที่ใช้ประมวลผลตอนอัปโหลดขึ้นฐานข้อมูล:
- header("Content-type: text/html; charset=utf-8");
- mysql_query("SET NAMES utf8"); // -- ตัวนี้ทำให้ในฐานข้อมูลเป็นภาษาไทย ถ้าลบบรรทัดนี้ออก ในเว็บก็เป็นภาษาไทยเหมือนเดิมครับ (แต่ในฐานข้อมูลจะเป็นต่างดาว ตามที่ได้กล่าวไปแล้วครับ)
- encode ไฟล์เป็น UTF-8 ครับ
3. ไฟล์ HTML ที่ใช้แสดงผลชื่อไฟล์จากฐานข้อมูล:
- <meta http-equiv="Content-Type" content="text/html">
- <meta charset="UTF-8">
- encode ไฟล์เป็น UTF-8 ครับ
4. ไฟล์ PHP ที่ใช้ดึงข้อมูลจากฐานข้อมูลมาป้อนให้ไฟล์ HTML ในข้อ 3. ครับ:
- header("Content-type: text/html; charset=UTF-8");
- encode ไฟล์เป็น UTF-8 ครับ
และได้ลองเพิ่มโค้ดข้างล่างนี้ลงไปในไฟล์ข้อ 4. ก็ไม่มีอะไรเปลี่ยนแปลงครับ:
- mysql_query("SET character_set_results=utf8");
- mysql_query("SET character_set_client=utf8");
- mysql_query("SET character_set_connection=utf8");
*EDIT*
ใช้ phpMyAdmin ทำฐานข้อมูลครับ collation คือ utf8_unicode_ci (ลองเปลี่ยนเป็น general_ci แล้วก็เหมือนเดิมครับ)
*EDIT*
ลองเว็บใน Chrome และ Firefox ก็เหมือนกันครับ
ผิดถูกควรไม่ควรทำอะไรยังไง ชี้แนะด้วยครับ กำลังฝึกครับผม ขอบคุณครับ
[PHP, MySQL] แสดงผลจากฐานข้อมูลให้เป็นภาษาไทยไม่ได้ซักทีครับ
ทราบมาว่าต้องส่ง query "SET NAMES utf8" เพื่อให้ชื่อไฟล์ในฐานข้อมูลเป็นภาษาไทย พอเซ็ตแล้วก็เป็นภาษาไทยจริง ๆ ครับ
แต่การแสดงผลในหน้าเว็บกลับเป็น "???????????????" ตลอดเลยครับ
คือถ้าในฐานข้อมูลเป็นภาษาไทย ในหน้าเว็บจะเป็น "???"
ถ้าในฐานข้อมูลเป็นภาษาต่างดาว เช่น "รัà¸à¸¨à¸²à¸ªà¸•ร์ เฟซ3.jpg" ในหน้าเว็บจะเป็นภาษาไทยครับ
ตอนนี้ทุกอย่างเป็น UTF-8 ดังนี้ครับ:
1. ไฟล์ HTML ที่ใช้อัปโหลดไฟล์:
- <meta http-equiv="Content-Type" content="text/html">
- <meta charset="UTF-8">
- encode ไฟล์เป็น UTF-8 ครับ
2. ไฟล์ PHP ที่ใช้ประมวลผลตอนอัปโหลดขึ้นฐานข้อมูล:
- header("Content-type: text/html; charset=utf-8");
- mysql_query("SET NAMES utf8"); // -- ตัวนี้ทำให้ในฐานข้อมูลเป็นภาษาไทย ถ้าลบบรรทัดนี้ออก ในเว็บก็เป็นภาษาไทยเหมือนเดิมครับ (แต่ในฐานข้อมูลจะเป็นต่างดาว ตามที่ได้กล่าวไปแล้วครับ)
- encode ไฟล์เป็น UTF-8 ครับ
3. ไฟล์ HTML ที่ใช้แสดงผลชื่อไฟล์จากฐานข้อมูล:
- <meta http-equiv="Content-Type" content="text/html">
- <meta charset="UTF-8">
- encode ไฟล์เป็น UTF-8 ครับ
4. ไฟล์ PHP ที่ใช้ดึงข้อมูลจากฐานข้อมูลมาป้อนให้ไฟล์ HTML ในข้อ 3. ครับ:
- header("Content-type: text/html; charset=UTF-8");
- encode ไฟล์เป็น UTF-8 ครับ
และได้ลองเพิ่มโค้ดข้างล่างนี้ลงไปในไฟล์ข้อ 4. ก็ไม่มีอะไรเปลี่ยนแปลงครับ:
- mysql_query("SET character_set_results=utf8");
- mysql_query("SET character_set_client=utf8");
- mysql_query("SET character_set_connection=utf8");
*EDIT*
ใช้ phpMyAdmin ทำฐานข้อมูลครับ collation คือ utf8_unicode_ci (ลองเปลี่ยนเป็น general_ci แล้วก็เหมือนเดิมครับ)
*EDIT*
ลองเว็บใน Chrome และ Firefox ก็เหมือนกันครับ
ผิดถูกควรไม่ควรทำอะไรยังไง ชี้แนะด้วยครับ กำลังฝึกครับผม ขอบคุณครับ