Hibernate連接Mysql中文亂碼處理
有一次在開發(fā)javaEE的時(shí)候,需要用到Mysql,當(dāng)時(shí)的服務(wù)器使用的是linux,我把所有的東西都寫好了,但是在界面上出現(xiàn)的字符總是“???”,當(dāng)時(shí)以為是數(shù)據(jù)庫(kù)存放的編碼不對(duì)!我發(fā)現(xiàn)mysql中的數(shù)據(jù)庫(kù)編碼也是utf8(我在struts2中配置的是utf-8)
當(dāng)時(shí)很頭疼,做了很長(zhǎng)時(shí)間的javaEE,怎么還有這樣的問題存在,當(dāng)時(shí)查了很多資料,感覺都不能滿意,終于有一次在google上面看英文的解說(shuō)(英語(yǔ)不好,一般都是跳過英文的),老外的意思是需要在Hibernate連接數(shù)據(jù)庫(kù)的字符串里面追加字符編碼格式,比如請(qǐng)求hello這個(gè)數(shù)據(jù)庫(kù),那么請(qǐng)求的連接字符是:
- <property name="connection.url">
- jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8
- </property>
但是連接了,發(fā)現(xiàn)界面和后臺(tái)答應(yīng)出來(lái)的還是“???”,.當(dāng)時(shí)特別郁悶,沒辦法,還是繼續(xù)看國(guó)外的一些文章,最后終于明白,這種寫法是沒有問題的,關(guān)鍵的錯(cuò)誤問題的存在“&”,要把上面的“&”修改為“&”,我實(shí)驗(yàn)了一些,結(jié)果這種方式的確可以解決“??”這種情況
完整的寫法:jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8
所以以后大家如果出現(xiàn)了這種問題,就需要為Hibernate的連接url添加字符編碼了哦!
原文鏈接:http://blog.csdn.net/vipa1888/article/details/7004978
【編輯推薦】