保存oracle数据之后乱码,Oracle保存中文数据和读取数据页面显示乱码解决方案
關(guān)于在Oracle數(shù)據(jù)庫中保存中文字段屬性和最后頁面顯示中文字符,之前遇到過一次,后來一直用MySQL就遇到的不多了,其實(shí)是我寫的項(xiàng)目不多啦,也沒成體系,很多情況下都是改他們寫好的代碼,所以那些這些中文字符問題在初期就解決完了。這次又著手自己寫項(xiàng)目了。就遇到問題了。
首先數(shù)據(jù)時(shí)在PL/SQL Developer客戶端錄入的,中文字段是username,然后在頁面上查詢顯示時(shí)這個(gè)字段就顯示亂碼了,記得以前老師說過要1.數(shù)據(jù)庫 2.java代碼 3.頁面顯示的編碼格式都統(tǒng)一(GBK 、 UTF-8)了,就不會(huì)亂碼,調(diào)試后還是不行。寫了錄入方法保存信息,從頁面存入的中文信息數(shù)據(jù)庫也顯示亂碼。搞了好一陣子也沒弄好;最后問老前輩得到有效解決辦法,他們之前寫到的字符轉(zhuǎn)換類。
頁面保存至數(shù)據(jù)庫?gbk2iso
public static String gbtoiso(String strgb) {
String striso = null;
try {
striso = new String(strgb.getBytes("GBK"), "iso-8859-1");
} catch (UnsupportedEncodingException e) {
// log.info(e.getMessage());
} catch (Exception e) {
// log.info(e.getMessage());
}
return striso;
}
讀取數(shù)據(jù)庫中的信息顯示到頁面
public static String isotogb(String striso) {
String strgb = null;
try {
if (striso != null && !striso.equals("null"))
strgb = new String(striso.getBytes("iso-8859-1"), "GBK");
else
strgb = "";
} catch (UnsupportedEncodingException e) {
log.info(e.getMessage());
}
return strgb;
}
上面的方法只需要在保存或查詢過程中把中文屬性過濾即可,例:
查詢轉(zhuǎn)換
public List findDBAll(){
List list = dbrwjkxxDAO.findAll();
//工具類引用到本類
for(int i = 0; i < list.size() ; i++){
this.isotogb((DmDbrwjkxx)list.get(i));
}
//直接引用工具類
//((DmDbrwjkxx)list.get(i)).setUsername(MyUtil.isotogb(((DmDbrwjkxx)list.get(i)).getUsername()));
return list;
}
保存轉(zhuǎn)換
public void saveDB(DmDbrwjkxx dbrw){
dbrw.setUsername(MyUtil.gbtoiso(dbrw.getUsername()));
dbrwjkxxDAO.save(dbrw);
} 其實(shí)歸根結(jié)底就是輸入的字符和數(shù)據(jù)庫保存的字符一直即可,這里做了統(tǒng)一處理。還不清楚為什么存入數(shù)據(jù)庫中時(shí)轉(zhuǎn)成iso,待改天搞懂再來補(bǔ)上吧。
總結(jié)
以上是生活随笔為你收集整理的保存oracle数据之后乱码,Oracle保存中文数据和读取数据页面显示乱码解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 数据中心,数据层 · Think
- 下一篇: motan yar php,motan学