สำหรับการ Config นี้จะเป็นการ Config สำหรับ MySQL version 5 ขึ้นไปนะคับ ซึ่งจากเดิมที่เวอร์ชันเก่าๆจะใช้ character set เป็น tis_620 และใช้ collation เป็น tis_620_ci ก็จะเปลี่ยนมาใช้เป็น utf8 ทั้งหมด
ซึ่งขันตอนการ set ที่ผมได้ลองมาก็มีหลายวิธี ไม่รู้ว่าจะครอบคลุมหมดรึเปล่า เพราะแต่ละคนก็เจอปัญหาไม่เหมือนกัน หากใครมีส่วนไหนเพิ่มเติมก็แนะนำได้นะคับ เรามาดูกันครับ
อันนี้ทำตั้งแต่ช่วงติดตั้ง หรือหลังจากติดตั้ง MySQL และมา Config ทีหลัง ให้ทำการเลือกที่ Manual Select Default Character Set แล้วเลือก utf8 ตามภาพครับ
อันต่อไปก็ทำใน web.config ครับ ตามนี้ครับ
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="th-TH" uiCulture="th-TH"/>ส่วนต่อไปเป็นการ set ใน MySQL ครับ บางครั้งอาจ set มาเป็นอย่างนี้อยู่แล้ว แต่เพิ่มความมั่นใจลองเช็คดูก่อนก็ไม่เสียหาย จากรูปด้านล่างเป็นตัวอย่างจาก MySQL front ครับ
ตัวอย่างคำสั่งในการ Set Character Set
SET character_set_client = utf8
ต่อไปคือกำหนดค่า character set ของ database เป็น utf8 ครับ ด้วยคำสั่ง
ALTER DATABASE web CHARACTER SET utf8และสุดท้ายเวลา Create Table ควรกำหนด Character Set ให้กับ Table ด้วย เช่น
CREATE TABLE table_name(col1 datatype, col2 datatype, ...หากยังไม่ได้ก็ให้ลองเช็คแต่ละ column ดูว่าเป็น utf8 รึเปล่า หากไม่ก็สามารถเปลี่ยนได้ด้วยคำสั่ง
) DEFAULT CHARSET=utf8;
ALTER TABLE table_name MODIFY COLUMN col_name datatype character set utf8เพียงเท่านี้ก็น่าจะใช้ภาษาไทยบน MySQL ร่วมกับ ASP.NET ได้อย่างไม่มีปัญหาแล้วครับ วันนี้ก็ขอจบเพียงเท่านี้ครับ หากใครมีคำแนะนำอะไรเพิ่มเติมก็โพสแนะนำได้นะครับ
ปล: คราวหน้าจะมาเขียนเรื่อง "MyISAM เร็วกว่า InnoDB จริงหรือ?" แล้วคอยติดตามกันครับ หุหุ
รออ่านตอนหน้าอยู่อ่ะเต้ "MyISAM เร็วกว่า InnoDB จริงหรือ?"
ตอบลบอย่าลืมทำ connect string เป็น utf 8 ด้วยนะคับ
ตอบลบcharset=utf8;
เพราะบางครั้งอาจเกิดกรณีภาษาใน asp.net กับ mysql คนละภาษากันฮะ
หวัดดีเต้ อิอิ
ขอบคุณมากครับ อู๋ ที่ช่วยแนะนำ
ตอบลบได้เพิ่มมาอีกข้อแระ อิอิ