java读oracle乱码解决方法
内容摘要
当Java读Oracle遇到中文乱码时,我们就需要进行转码。(推荐:java视频教程)转码方法:1、纯手工转码将读到的字符串s进行转码,如:new String(s.getByte(A), B)2、Druiddruid是阿里巴巴
文章正文
当Java读Oracle遇到中文乱码时,我们就需要进行转码。(推荐:java视频教程)
转码方法:
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基础教程栏目。
代码注释
[!--zhushi--]