หน้าเว็บ

วันเสาร์ที่ 25 ตุลาคม พ.ศ. 2557

แก้การแสดงภาษาไทยเป็นเครื่องหมาย ???? จากฐานข้อมูล mysql

การแก้ไขปัญหาของ server ในการนำเข้าข้อมูลด้วยโปรแกรมสารบรรณออนไลน์ Archives ของกระทรวงสาธารณสุข หลังจากที่ได้ใช้งาน version 1 มาได้พักใหญ่ๆ (เป็นปี) ปัญหาหลังจากย้าย server เนื่องจากเครื่องเดิมเสีย ก่อนหน้านั้นสามารถใช้งานได้ปกติดี ไม่มีปัญหาอะไรในการใช้งาน จะมีเพียงก็แต่ bug ในส่วนของ user ที่จะใช้งาน ซึ่งทำให้ รพช ภายในจังหวัดใช้งานร่วมด้วยได้ ก็เลยต้องปล่อยเลยตามเลย จนมาเจอจังๆ เอาเข้ากับกลุ่มบริหารฯ สป. ซึ่งคุยกับทางผู้บริหารระดับสูงเอาไว้ว่า ทุกแห่งสามารถใช้ได้ภายในสิ้นปี???? แย่อยู่นา อบรม version 2 มาตั้งแต่มิถุนา... ณ ตอนนี้ 4 เดือน ยังไม่นิ่ง ก็เลยยังไม่กล้าที่จะปรับเวอร์ชั่น และเรียก รพช อบรมเรื่องการใช้งาน เสียวๆ โดนด่าตามหลังเหมือนกัน อ้าว เขียนวิธีแก้ภาษาไทยในการนำเข้าฐานข้อมูล แต่ดันพร่ำเพ้ออะไรของกูวะเนี่ย 5555 เอาเป็นว่า เรื่องเวอร์ชั่น รอจนกว่า อ.คมฯ กับ อ.ป๊อบ ปล่อยตัวแน่นอนก็แล้วกันเนอะ
##############
การแก้ไขปัญหาในส่วนของภาษาไทยที่นำเข้าไปใน mysql ไม่เป็นภาษาไทย แต่กลายเป็น ???

1. ตรวจสอบตาราง ecmsinbox ว่าเป็น utf8 หรือเป็น tis620 ถ้าเป็น tis ก็ให้เปลี่ยนโครงสร้างตาราง รวมไปถึงฟิลด์แต่ละฟิลด์ในตารางนั้นด้วย จะใช้ navicat หรือ phpmyadmin ก็แล้วแต่ ตามสะดวก

2. เข้าไปแก้ไขไฟล์ my.cnf หรือ my.ini เพื่อเพิ่มเติมให้ รับ-ส่ง เป็น utf8 ซึ่งค่าปกติเดิม ไม่ได้กำหนดมาให้ ต้องทำเอง... เพิ่มเติมตามหัวข้อนี้ เพียงสามบรรทัดครับ ให้เพิ่มในบรรทัดสุดท้ายของหัวข้อนั้นๆ ก็ได้ครับ หาง่ายดี

          แบบเดิมแก้แบบนี้ หรือในบาง version ของ mysql
[client]
default-character-set=utf8

[mysqld]
collation_server=utf8_unicode_ci
character_set_server=utf8
หลังจากแก้ไขเสร็จแล้ว ก็ไป restart mysql ซักรอบ แล้วลองรับ-ส่งข้อมูลภาษาไทยดู ถ้าได้ ก็จบครับ ไม่ต้องไปต่อที่ apache

แบบใหม่ที่ทำการแก้ไข (version 5.7.24)
[mysqld] 
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
init-connect='SET collation_connection = utf8_unicode_ci'
character-set-server = utf8
skip-character-set-client-handshake
หลังจากแก้ไขเสร็จแล้ว ก็ไป restart mysql เสร็จแล้วตรวจสอบด้วยคำสั่งใน command line
show variables like "%character%";show variables like "%collation%";
จะได้เป็น utf8 ทั้งหมด จ๊บ

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

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