转码方法:
1、纯手工转码
将读到的字符串s进行转码,如:new string(s.getbyte(a), b)
2、druid
druid是阿里巴巴自己开发的一个驱动,它其实是对各种数据库驱动做了一层统一的封装,添加日志、告警、编码转换等功能。配置方式如下:
<bean id="opensqldatasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="com.alibaba.china.jdbc.simpledriver" /> <property name="url" value="jdbc:oracle:thin:@10.20.130.210:1521:dwtest" /> <property name="username" value="etl" /> <property name="password" value="etl" /> <property name="connectionproperties"><value>serverencoding=iso-8859-1;clientencoding=gbk;defaultrowprefetch=50;bigstringtryclob=true</value></property> </bean>
其中connectionproperties中包含serverencoding、clientencoding两个属性。在java读取到数据后,如果发现serverencoding、clientencoding不同,则会自动进行如下编码转换。
new string(s.getbyte(serverencoding), clientencoding)
更多java知识请关注java基础教程栏目。
以上就是java读oracle乱码解决方法的详细内容。
