แก้ปัญหา Hibernate 4 เชื่อมต่อ Mysql ของ Webserver Xampp อาการเพิ่มข้อมูลแต่ไม่เป็น UTF-8 (ตอนที่ 1)

Sharing is caring!

แก้ปัญหา 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

mysql_unicode

เปิดไฟล์ ขึ้นมา

mysql_unicode_1

 

เลื่อนลงมาประมาณบรรทัดที่ 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 ลองทดสอบเพิ่มข้อมูล ข้อมูลก็จะเป็นภาษาไทยแล้ว หวังว่าคนที่ประสบปัญหาเดียวกับผมแก้ตามนี้แล้วจะสามารถใช้งานภาษาไทยได้นะครับ