問題1、jdbc中文插入時報錯,如下:
解決辦法:
數據庫表的編碼也需要修改
mysql>show create table tb;
發現其是latin1編碼的,需將其轉成utf8
命令如下
alter table tb convert to character set utf8;
數據庫表就被轉化成了utf8,解決中文入庫報錯問題;
問題2、中文入庫顯示??號,但使用mysql命令直接插入中文時可以正常顯示
解決辦法:
首先查看jdbc時,是否在數據庫連接時設置了編碼
String url ="jdbc:mysql://localhost:3306/project_face?useUnicode=true&characterEncoding=UTF-8";
如沒有問題,可能是數據庫顯示的問題
命令mysql>show variables like 'char_%';查看數據庫編碼
除character_set_filesystem項其他都可以設置成utf8,但退出數據庫再次進入時,數據庫編碼仍會變爲上圖狀態
經過測試發現,在查看數據時將character_set_results項設爲utf8,就可得到正確的中文顯示