十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹了解決java oracle中文亂碼的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供瀏陽企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為瀏陽眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
java oracle中文亂碼的解決方法:1、將讀到的字符串s,則進(jìn)行純手工轉(zhuǎn)碼,代碼為【new String(s.getByte(A), B)】;2、使用druid對各種數(shù)據(jù)庫驅(qū)動(dòng)做了一層統(tǒng)一的封裝,編碼轉(zhuǎn)換。
java oracle中文亂碼的解決方法:
轉(zhuǎn)碼方法
當(dāng)Java讀Oracle遇到中文亂碼時(shí),我們就需要進(jìn)行轉(zhuǎn)碼。轉(zhuǎn)碼的方法很多,我接觸過的有以下幾種。
1、純手工轉(zhuǎn)碼
將讀到的字符串s進(jìn)行轉(zhuǎn)碼,如:new String(s.getByte(A), B)
2、Druid
druid是阿里巴巴自己開發(fā)的一個(gè)驅(qū)動(dòng),它其實(shí)是對各種數(shù)據(jù)庫驅(qū)動(dòng)做了一層統(tǒng)一的封裝,添加日志、告警、編碼轉(zhuǎn)換等功能。配置方式如下:
serverEncoding=ISO-8859-1;clientEncoding=GBK;defaultRowPrefetch=50;bigStringTryClob=true
其中connectionProperties中包含serverEncoding、clientEncoding兩個(gè)屬性。在Java讀取到數(shù)據(jù)后,如果發(fā)現(xiàn)serverEncoding、clientEncoding不同,則會自動(dòng)進(jìn)行如下編碼轉(zhuǎn)換。
new String(s.getByte(serverEncoding), clientEncoding)
3、weblade ibatis callback
它采用了如下注冊ibatis callback的方式。
使得在默認(rèn)情況下,程序會把ibatis獲取到的String進(jìn)行如下編碼轉(zhuǎn)換:
new String(s.getByte(“ISO-8859-1”), “GBK”)
該二方庫引入的方式如下:
com.alibaba.asc.shared weblade.core.ibatisext 1.2.0-SNAPSHOT
Ibatis callback隱藏了編碼轉(zhuǎn)換的過程,但問題是它對項(xiàng)目中所有的數(shù)據(jù)源生效。使得無法同時(shí)透明地支持需要轉(zhuǎn)碼和無需轉(zhuǎn)碼的數(shù)據(jù)源。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享解決java oracle中文亂碼的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!