แก้ปัญหา Hibernate 4 + Mysql เพิ่มข้อมูลแต่ไม่เป็น UTF-8
ปัญหานี้อาจจะเปิดกับผู้ที่ใช้ web server Xampp แต่ใช่ Hibernate 4 เชื่อมต่อกับ Mysql ที่มีใน Xampp แต่แก้เท่าไหร่ปัญหาการเพิ่มข้อมูลภาษาไทยแล้ว ไม่เป็นภาษาไทย
อาการเบื้องต้น
- ดึงข้อมูลมาแสดงเป็นภาษาไทย
- สร้างฐานข้อมูล set collection ตอนสร้าง database เป็น utf8_general_ci เรียบร้อยแล้ว
- set Collation ของ table เป็น utf8_general_ci เรียบร้อยแล้ว
- ไป config Hibernate โดย
– เพิ่มค่า properties เหล่านี้ในไฟล์ config ของ hibernate
hibernate.connection.characterEncoding : utf8
hibernate.connection.CharSet : utf8
hibernate.connection.useUnicode : true
แต่ยังก็ไม่สามารถแก้ไขได้
– เพิ่มค่า Parameter ไปกับ url hosting
db.url: jdbc:mysql://localhost:3306/poolsawat?UseUnicode=true&characterEncoding=utf8
แต่ยังก็ไม่สามารถแก้ไขได้
ถ้าใครมีอาการหรือตั้งค่าแบบเหล่านี้แล้วยังแก้การเพิ่มข้อมูลให้เป็น UTF-8 ไม่ได้ ให้ทำตามข้อปฏิบัติข้างล่างนี้
ผมค้นหา Google ไปเจอ http://mathiasrichter.blogspot.com/2009/10/character-encoding-utf-8-with.html
บอกให้เข้าไปเพิ่มคำสั่งใน my.ini ของ mysql
เปิดไฟล์ ขึ้นมา
เลื่อนลงมาประมาณบรรทัดที่ 151 กว่า ๆ จะเจอกลุ่มข้อความ กลุ่มหนึ่งเกี่ยวกับการตั้งค่าการใช้งาน
## UTF 8 Settings
ให้ทำการเปิดการใช้งาน UTF 8 เอา # จากหน้าข้อความ
## UTF 8 Settings
#init-connect=\’SET NAMES utf8\’
collation_server=utf8_unicode_ci
character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir=”C:/xampp/mysql/share/charsets”
แก้เสร็จก็ save จากนั้น restart mysql ลองทดสอบเพิ่มข้อมูล ข้อมูลก็จะเป็นภาษาไทยแล้ว หวังว่าคนที่ประสบปัญหาเดียวกับผมแก้ตามนี้แล้วจะสามารถใช้งานภาษาไทยได้นะครับ