วันศุกร์ที่ 25 กันยายน พ.ศ. 2552

- การแก้ปัญหากรณีเขียนโปรแกรม PHP แล้วฐานข้อมูลไม่เป็นภาษาไทย


ปัญหานึงที่เป็นปัญหากับคนทำเว็บกันจังเลยคือปัญหา ภาษาไทยไม่เป็นภาษาไทย แต่ถ้าไม่มีวันนั้นผมก็คงไม่มีความรู้ในวันนี้ การแก้ปัญหามาว่ากันทีละอย่าง ว่าเราต้องทำอะไรกับมันบ้างนะคับ

1. HTML Content-Type - ตรงนี้ง่ายๆคับ เพียงแค่เพื่อบอก Browser ให้รู้ว่าหน้าเว็บของเราจะใช้ UTF-8 นะ แค่เพิ่ม meta เข้าไปใน คับ แบบนี้





2. Database - ปัญหาส่วนใหญ่ก็มาจาก database นี่แหละ คนที่ทำเว็บที่ไม่ได้มีความจำเป็นต้องใช้ฐานข้อมูล ก็จะไม่ค่อยเจอปัญหานี้เท่าไหร่ แต่ถ้าต้องใช้ฐานข้อมูลล่ะ ปัญหาที่เกิดมันเกิดจากการเซ็ต database collation ผมไม่รู้ข้อมูลเชิงเทคนิคนะแต่ถ้าให้เดาก็คือ charset ที่จะใช้เก็บข้อมูลลงฐานข้อมูล วิธีก็คือเราต้องตั้ง database collation ให้เป็น utf8 ในตอนที่เราสร้าง database , ที่ผมใช้ส่วนใหญ่จะเป็น utf8_unicode_ci หรือไม่ก็ utf8_general_ci ถ้าใช้ phpMyAdmin มันจะมีให้เลือก collation อยู่ตอนสร้างฐานข้อมูล น่าจะหาเจอได้สบายๆ








แต่ถ้าเกิดฐานข้อมูลนั้นโฮสท์มันสร้างให้แล้วดันตั้ง collation ที่ไม่ใช่ utf8 ล่ะ ? เราก็ต้องเปลี่ยนให้มันเป็น utf8 ก่อนที่จะติดตั้งสคริปท์หรือสร้างตารางอ่ะคับ ก็คงต้องพึ่ง phpMyAdmin อีกแหละ วิธีก็คือเลือก ฐานข้อมูลที่จะใช้งาน เลือกแท็บ Operations ก็จะมีให้เปลี่ยน collation ได้คับ เท่านี้ก็หมดปัญหากับ Database Collation ละ แต่ยังไม่จบ !! ในสคริปท์จะต้องระบุ charset ที่ใช้ในการติดต่อสื่อสารกับฐานข้อมูลด้วย ถ้าลงสคริปท์สำเร็จรูปอย่างเช่น Wordpress ตรงนี้เค้าจะเซ็ตกันไว้อยู่แล้ว แต่ถ้าเขียนเองผมก็จะใส่เพิ่มเข้าไปหลังจากติดต่อฐานข้อมูลแบบนี้ครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น