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,待改天搞懂再来补上吧。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值