บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ encoding

ตัวหนังสืออ่านไม่ออก เป็นเครื่องหมายคำถาม

รูปภาพ
การเปลี่ยนการเข้ารหัส หรือ Collation ฐานข้อมูลบน Server มักจะสร้างปัญหาเกี่ยวกับตัวอักษร ทำให้อ่านไม่ออก กลายเป็นเครื่องหมายคำถาม หรือ ตัวอักษรต่างดาวก็มี ดังตัวอย่างข้างล่างนี้ สาเหตุเกิดจากการไม่เข้ากันของการกำหนดชุดอักษร บนฐานข้อมูล MySql ใน Server และการใช้ encoding ของไฟล์ ตลอดจนการกำหนดชุดตัวอักษร หรือ charset บนหน้าเว็บ ทำให้มีปัญหาไม่ลงตัว Browser จึงแสดงออกมาเป็นเครื่องหมายคำถาม หรือ ข้อความต่างดาว อ่านไม่ออก เมื่อสังเกตจากตัวอย่าง จะเห็นว่า บางตัวก็เป็นตัวหนังสือธรรมดา แต่บางตัวก็เป็นตัวอ่านไม่ออก ที่เป็นเช่นนี้เพราะ ตัวที่อ่านไม่ออก เป็นข้อมูลที่ดึงออกมาจากฐานข้อมูลบน Server ส่วนตัวที่อ่านออก เป็นส่วนที่เขียนโค้ดในหน้าเว็บ ในตัวอย่างนี้ หน้าเว็บกำหนด charset เป็น tis-620 วิธีการแก้ไข หลังจากที่ติดต่อกับฐานข้อมูลแล้ว ให้ใช้คำสั่ง mysql_set_charset() เพื่อเปลี่ยนให้เป็น charset ที่ใช้ในหน้าเว็บ เช่น                                 $cid = mysql_connect($host,$usr,$pwd); mysql_set_ch...

ภาษาต่างดาว php UTF-8 TIS-620

รูปภาพ
สำหรับผู้ที่ทำเว็บ เคยหรือไม่ที่หน้าเว็บออกมาเป็นแบบข้างล่างนี้ ปัญหาก็คือ เรื่องของ Encoding หรือ charset นั่นเอง มีอยู่ 2 จุด คือ ในส่วนหัวของ HTML กำหนด charset ไม่ตรงกับเครื่องมือที่ใช้เขียน HTML เช่น ใน EditPlus ตรวจสอบ Encoding ได้ที่ Document > File Encoding > Change File Encoding จะมีตัวเลือกให้เปลี่ยน เป็น UTF-8 หรือ ถ้ากำหนด charset ในส่วนหัวของ HTML เป็น tis-620 ต้องกำหนดให้เป็น ANSI ถ้ากำหนดเป็น UTF-8 แต่ส่วนหัวของ HTML กำหนด charset เป็น tis-620 ก็จะเห็นเป็นตัว ภาษาต่างดาว เหมือนในตัวอย่างข้างบน ซึ่งกำหนด charset ในส่วนหัว HTML เป็น UTF-8  แต่ที่ EditPlus กำหนด Encoding เป็น ANSI เมื่อแก้ไขให้ตรงกัน โดยกำหนด Encoding เป็น tis-620 ปัญหาต่าง ๆ ก็จะหายไป เว็บก็จะอ่านได้ การค้นหาข้อมูลในฐานข้อมูลก็จะทำได้ตามปกติ ปัญหาไม่ได้อยู่แค่นั้น สมมติว่า เว็บอ่านออก แต่ถ้ามีการต้องไปค้นหาข้อมูลในฐานข้อมูล และถ้า Encoding ไม่ตรงกัน ระหว่างหน้าเว็บ HTML หรือ PHP กับ Encoding ของ ฐานข้อมูลบน Server เช่น MySQL การค้นหาก็จะล้มเหลว หาไม่พบ การแก้ไขง่าย ๆ ก็คื...