วันนี้ผมได้ rewrite บทความนี้เสียใหม่ให้กระชับกว่าเดิม จึงเรียนมายังท่านที่เคยอ่านบทความนี้และทดลองทำตามแล้วไม่ได้ผล ขอให้ทดลองทำตามขั้นตอน ที่ผมได้แนะนำไว้ใหม่ ณ วันนี้ อีกครั้งหนึ่ง
จึงเรียนมาเพื่อทราบ และต้องขออภัยที่บทความนี้ ก่อนหน้านี้ ทำให้ท่านสับสน ขออภัยอีกครั้งครับ
สำหรับท่านที่ต้องการจะเปลี่ยนฐานข้อมูลจาก Latin1 มาเป็น utf-8 สามารถทำได้ง่ายๆ
ด้วย Navicat 8.0
ขั้นตอนการดำเนินการ
1.เชื่อมต่อฐานข้อมูลด้วย Encoding 874-(ANSI/OEM-Thai)
2. Dump SQL File เพื่อทำการ export รายการทั้งหมดออกเก็บเป็นไฟล์
3. เปิดไฟล์ขึ้นมาแล้ว ลบคำสั่งสร้าง ฐานข้อมูล แล้ว Save As เป็น UTF-8
4. เปลี่ยนโครงสร้างฐานข้อมูลให้เป็น UTF-8
5. Import ไฟล์ SQL เข้ามา แล้ว Run
6. ปิดการเชื่อมต่อฐานข้อมูลแล้วเปิดใหม่
1.
เชื่อมต่อฐานข้อมูลด้วย Encoding 874-(ANSI/OEM-Thai)
2.
Dump SQL File เพื่อทำการ export รายการทั้งหมดออกเก็บเป็นไฟล์
ก่อนทำการ export รายการออกท่านลองเปิดดูข้อมูลในตาราง ให้แน่ใจก่อนว่ามันอ่านเป็นภาษาไทยได้ ถ้ามันยังอ่านไม่เป็นภาษาไทย ต้องย้อนกลับไปดูข้อ 1 อีกทีว่าทำผิดตรงไหนบ้างหรือเปล่า
คลิกขวาที่ตาราง แล้วเลือก Dump SQL File เลือกบันทึกไว้ที่ desktop ก็ได้ครับ
3.
เปิดไฟล์ขึ้นมาแล้ว ลบคำสั่งสร้าง ฐานข้อมูล แล้ว Save As เป็น UTF-8
4.
เปลี่ยนโครงสร้างฐานข้อมูลให้เป็น UTF-8
ก่อนจะทำข้อนี้ท่านจะต้อง เปลี่ยนการเชื่อมต่อฐานข้อมูลเสียก่อนให้เป็น utf8 ท่านจำข้อ 1 ได้มั้ยครับ ว่าเราเชื่อมต่อฐานข้อมูลเข้ามาแบบ thai
โครงสร้างที่จะต้องเปลี่ยนก็คือ ฐานข้อมูล,ฟิลด์ที่เป็น varchar text และในกลุ่มที่จัดเก็บตัวหนังสือ
5.
Import ไฟล์ SQL เข้ามา แล้ว Run
ก่อนทำข้อนี้ ให้ท่านลบข้อมูลเดิมที่อยู่ในตารางทิ้งให้หมด
คลิกที่ปุ่ม Query บนทูลบาร์ แล้วเลือก New Query มันจะเปิดหน้าต่างนี้ขึ้นมา
คลิกปุ่ม Load แล้วเลือกไฟล์ที่เรา export ไปก่อนหน้านี้เข้ามา แล้วคลิกปุ่ม Run
6.
ปิดการเชื่อมต่อฐานข้อมูลแล้วเปิดใหม่
ฐานข้อมูลและข้อมูลภายในของท่านเป็น utf-8 แบบสมบูรณ์แล้วครับ
tttt says:
06/08/2553 at 06/08/2553
ผมทำตรงไหนผิดเนี่ยครับ เปลี่ยนไม่ได้คร้าบ…
administrator says:
06/08/2553 at 06/08/2553
ลองอ่านขึ้นตอนให้เข้าใจเป้าหมายของแต่ละขั้นให้ดี และทำความเ้ข้าใจกับแต่ละขั้นตอน แล้วลองทำอีกทีครับ ผมเอาหัวรับประกันว่า navicat สามารถ convert ฐานข้อมูลมาเป็น utf-8 ได้สมบูรณ์ล้านเปอร์เซ็นต์
่jaruwatbbm says:
01/06/2557 at 01/06/2557
รบกวนท่านแนะนำหน่อยครับ ของผม ใช้ crystal report 11 ดึง field ที่ใช้เก็บข้อมูล ภาษาไทย จาก database Navicat แล้ว ส่วนที่ ออก รายงาน(crystal report) มัน เป็นภาษาาต่างดาวครับ
ส่วนตัว Navicat ผม set Encoding เป็น 874 (ANSI/OEM – Thai) Table ใน Navicat แสดง field ที่เก็บเป็นภาษาไทยได้ปกติครับ ผมรบกวนขอคำแนะนำหน่อยครับ ขอบคุณ มากครับ