1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 保存oracle数据之后乱码 Oracle保存中文数据和读取数据页面显示乱码解决方案

保存oracle数据之后乱码 Oracle保存中文数据和读取数据页面显示乱码解决方案

时间:2019-08-18 10:19:53

相关推荐

保存oracle数据之后乱码 Oracle保存中文数据和读取数据页面显示乱码解决方案

关于在Oracle数据库中保存中文字段属性和最后页面显示中文字符,之前遇到过一次,后来一直用MySQL就遇到的不多了,其实是我写的项目不多啦,也没成体系,很多情况下都是改他们写好的代码,所以那些这些中文字符问题在初期就解决完了。这次又着手自己写项目了。就遇到问题了。

首先数据时在PL/SQL Developer客户端录入的,中文字段是username,然后在页面上查询显示时这个字段就显示乱码了,记得以前老师说过要1.数据库 2.java代码 3.页面显示的编码格式都统一(GBK 、 UTF-8)了,就不会乱码,调试后还是不行。写了录入方法保存信息,从页面存入的中文信息数据库也显示乱码。搞了好一阵子也没弄好;最后问老前辈得到有效解决办法,他们之前写到的字符转换类。

页面保存至数据库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;

}

读取数据库中的信息显示到页面

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;

}

上面的方法只需要在保存或查询过程中把中文属性过滤即可,例:

查询转换

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;

}

保存转换

public void saveDB(DmDbrwjkxx dbrw){

dbrw.setUsername(MyUtil.gbtoiso(dbrw.getUsername()));

dbrwjkxxDAO.save(dbrw);

} 其实归根结底就是输入的字符和数据库保存的字符一直即可,这里做了统一处理。还不清楚为什么存入数据库中时转成iso,待改天搞懂再来补上吧。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。