MariaDB 資料庫編碼問題

如果寫入資料庫出現類似以下錯誤

org.mariadb.jdbc.internal.util.dao.QueryException: Incorrect string value: ‘\xE8\x87\xBA\xE5\x8C\x97…’ for column

先檢查資料庫的編碼設定,例如資料庫名稱為 mydb

mysql mydb

show variables like ‘char%’;

character_set_database 的設定可能是預設值 latin1 與你的資料編碼不一致,因而出現上述問題

建決方法是將資料庫 drop 掉用以下指令在建立資料庫時指定編碼,例如

create database mydb character set ‘utf8’

這時候再檢查一次 character_set_database 應該是顯示 utf8,後續建立的 table 也都會採用這個編碼

附註:

檢查資料庫內 table 編碼可以用 show table status

檢查 table 內欄位編碼可以用 show full columns from <your table>

CentOS 7 設定 character_set_server 則是在 /etc/my.cnf.d/server.cnf 的 server section 加一行

character_set_server=utf8

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...