DB2字符集,查询中文错误

在数据查询时,javaResultSet接口的public String getStringString columnName)方法抛出异常。

 

案例分析思路:

       应用抛出异常,首先要看应用是否有不合理的地方,比如查询的列值类型是不是有错误,或是没有列供getString来检索值。在都排除了上述问题后,决定写Test测试类。

      

       写个简单的测试类来实现应用中一样的查询,看是否也会报异常。这个方法很直接,可以说花很少的代价就可以得到足够的信息,具体的执行方法可以先在IDE中编写好测试类,然后通过粘贴拷贝将测试类写到远程机器上。

       发现测试类也抛出了异常。在确定不是应用的同时,可以认定为是数据的问题。将查询的表中所有数据都删除,再执行测试类,发现没有任何异常。最后锁定为是数据的问题。在询问了数据插入人员后,原来这条数据是开发人员手动insert到表中,所有可以能字符集转换的问题。于是通过将出问题的数据行将其中的中文删除,只留英文,因为英文不存在编码问题,测试通过。

最后确定为插入数据时没有指定数据库使用的字符集,应用使用LANG=zh_CN 和DB2CODEPAGE= 1386的设置,这样中文就不会产生乱码问题。

另,此类问题可以简单的使用DB2提供的函数hex来检查,中文是否是正确的字符集。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值