java 解决oracle US7ASCII编码,sql查询时

资源来源:http://playgod1984.iteye.com/blog/429939

查看当前数据库字符集:SELECT * FROM v$nls_parameters where parameter='NLS_CHARACTERSET';

1,今天同事让帮忙写一个查询,但是Oracle得编码格式是US7ASCII。我在网上查了一下,有的说需要修改注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG 的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,或者修改一个系统变量NLS_LANG.这两种方法我没有试,因为对于系统级别的方案我都不太喜欢用,最后终于找到了 

Java代码   收藏代码
  1. new String(rs.getObject(fields[i]).toString().getBytes("iso-8859-1"),"GBK")  

虽然费事了一些,需要每个字段都转码一遍,但是用起来顺手多了。同样的,检索条件是中文的话,别忘了 
Java代码   收藏代码
  1. new String(condition.getBytes("GBK"),"iso-8859-1")  

2,只顾给同事忙活了,忘了自己的项目用的mysql,读写,插入都是乱码,用了oracle的方法,不好用,网上查查,有些是jsp的,以前用过好用,可是这次是c/s的。用不上。有人说写个过滤器,嫌麻烦一个,再者用到c/s不会用  。愿意费劲搜,不愿意费劲写。呵呵。最后终于找到了高人的专栏。我把我需要的内容拿了过来,他还有好多方法,一共四种。我只用修改连接url时的参数的方法。因为怕影响到其他项目,ini文件就不改了,另外getBytes的方法试了不好用。  方法如下: 
========================================================= 
Java代码   收藏代码
  1. //装载mysql-jdbc驱动  
  2.   
  3. Class.forName("com.mysql.jdbc.Driver").newInstance();  
  4.   
  5. //连接数据库  
  6.   
  7. Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=1&useUnicode=true&characterEncoding=utf-8" );  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值