問題發現:這里拿eclipse創建hibernate為例(其他類型往數據庫存值亂碼問題都大差不差),用hibernate往數據庫存值出現亂碼后:
辦法:(最好就是所有開發工具全部統一編碼格式)
1.開發工具默認字符編碼是否是UTF-8。
如eclipse
2.數據庫的字符集編碼格式是否是utf-8
開啟mysql數據庫 ,命令行 show variables like 'character%';
如何修改了,一個是修改my.ini文件
[mysqld]
port = 3306
basedir=D:/software/javaee/mysql //這里一定注意一定用/,如果用\可能剛開始安裝時候正常使用,只要重新開機啟動mysql就可能報1067錯誤,特別是放在c盤以外注意
datadir=D:/software/javaee/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8
第二種,命令行,不推薦使用
mysql> set character_set_client=utf8 ;
mysql> set character_set_connection=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_results=utf8 ;
mysql> set character_set_server=utf8 ;
mysql> set character_set_system=utf8 ;
重啟服務器 命令行net start mysql 讓它重啟
如果還是不行,還亂碼,注意加載連接路徑時候數據庫名后面加上
jdbc:mysql://localhost:3306/hibernate_crm?useUnicode=true&characterEncoding=UTF8
這樣在連接道路上指定其編碼格式