主頁 > 知識庫 > JDBC連接mysql處理中文時亂碼解決辦法詳解

JDBC連接mysql處理中文時亂碼解決辦法詳解

熱門標(biāo)簽:百度地圖標(biāo)注地方備注 電話機(jī)器人免費(fèi)嗎 電銷機(jī)器人價格多少錢一臺 怎么辦理400電話呢 400電話申請什么好 怎么申請400電話申請 好搜地圖標(biāo)注 地圖標(biāo)注圖標(biāo)素材入駐 龍圖酒吧地圖標(biāo)注

JDBC連接mysql處理中文時亂碼解決辦法詳解

近日,整合的項目需要跟一個比較老版本的mysql服務(wù)器連接,使用navicat查看,發(fā)現(xiàn)此mysql服務(wù)器貌似沒有設(shè)置默認(rèn)編碼,而且從操作此mysql的部分php文件看,應(yīng)該是使用的gb2312的編碼,但是,直接使用jdbc操作,從庫中讀取出來的中文全都是亂碼。

一開始,使用類似entity.setDepartName(new String(rs.getString("hg").getBytes("gbk"), "utf-8"));的方式,試圖進(jìn)行強(qiáng)制的編碼轉(zhuǎn)換,結(jié)果失敗了,因?yàn)?,無論采用何種方式,轉(zhuǎn)出來的字符總是各種各樣的亂碼,只是每次亂的方式都不一樣。比較郁悶。而且,此項目由于使用的其他的產(chǎn)品,無法在其中再加額外的類似過濾器之類的東西,所以這個問題不是很好處理。

使用navicat連接查詢,沒有問題,因此,試著將某個表導(dǎo)出sql,查看DDL中是否有關(guān)于編碼的設(shè)置,結(jié)果讓我很失望,編碼這一塊直接沒寫。于是,將導(dǎo)出的sql文件修改擴(kuò)展名為html,使用IE打開,發(fā)現(xiàn)沒有亂碼,查看此時的編碼格式果然是“gb2312”,但是,使用java強(qiáng)制的轉(zhuǎn)碼已無濟(jì)于事。怎么辦呢?

而且,此項目已運(yùn)行多年,后期維護(hù)有些缺乏,my.ini文件也更是無法查看并修改的。

突然想起,mysql連接的時候可以加上參數(shù),并且有些參數(shù)是指定編碼的,這樣是不是可以解決問題呢?

于是修改連接字符串(原值為:url="jdbc:mysql://192.168.18.254:3306/web_oa)為:

url="jdbc:mysql://192.168.18.254:3306/web_oa?useUnicode=truecharacterEncoding=gbk"

重啟應(yīng)用,查看,OK!中文很正常。

問題解決。

這種方式其實(shí)是在連接時指定使用gbk的編碼格式,從而避免客戶端與服務(wù)端各自使用自己默認(rèn)的編碼格式交互,只要配置合適,不會出現(xiàn)亂碼問題。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • php寫入mysql中文亂碼的實(shí)例解決方法
  • MySQL字符集亂碼及解決方案分享
  • linux下mysql亂碼問題的解決方案
  • mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法
  • JDBC連接mysql亂碼異常問題處理總結(jié)
  • 詳解mysql數(shù)據(jù)庫中文亂碼問題
  • 解決mysql數(shù)據(jù)庫數(shù)據(jù)遷移達(dá)夢數(shù)據(jù)亂碼問題

標(biāo)簽:浙江 廣西 撫順 防疫工作 內(nèi)江 固原 溫州 汕尾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JDBC連接mysql處理中文時亂碼解決辦法詳解》,本文關(guān)鍵詞  JDBC,連接,mysql,處理,中文,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JDBC連接mysql處理中文時亂碼解決辦法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于JDBC連接mysql處理中文時亂碼解決辦法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章