1. 程式人生 > >對於mysql資料庫中文亂碼問題的解決(在所有的編碼都是utf-8的情況下中文亂碼)

對於mysql資料庫中文亂碼問題的解決(在所有的編碼都是utf-8的情況下中文亂碼)

在寫jdbc連結mysqll資料庫時,向其中插入中文資料出現亂碼。查看了所有的配置,都是utf-8編碼,my.ini配置檔案也修改好了,還出現這樣的亂碼,實屬不應該。

在各種部落格論壇查詢,都是修改資料庫的編碼的套路,其中也不乏有在連線資料庫的連結url中加編碼的,比如:“jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=utf-8;”(這裡要注意的是不能出現空格)這種方法應該是有效的,但是我遇到的問題真的是奇葩。

通過熬夜徹查,發現是在往資料庫中插入時間資料,格式轉換導致整條資料出現轉換,從而出現亂碼。那條時間資料格式的程式碼:simpledateformat sdf = new simpledateformat("yyyy年MM月DD日 HH:mm:ss");

其中的中文導致出現亂碼,所以當去掉年月日的中文,換成槓槓“-”,再在驅動連結加上驅動連結的編碼,成功解決插入資料的亂碼問題。

所以有個時候,不一定是資料庫編碼的問題,有可能插入的那條資料本身有問題,所以好好的看看插入資料的來源。