java oracle中文乱码_解决java oracle中文乱码的方法

本文详细介绍了在Java程序中处理Oracle数据库中文乱码的三种方法:手动转码、使用Druid数据源以及Weblade的IbatisCallback。通过设置连接属性、编码转换,确保Java读取Oracle数据时正确显示中文。
摘要由CSDN通过智能技术生成

解决java oracle中文乱码的方法

发布时间:2020-08-18 10:06:59

来源:亿速云

阅读:127

作者:小新

这篇文章主要介绍了解决java oracle中文乱码的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。java oracle中文乱码的解决方法:1、将读到的字符串s,则进行纯手工转码,代码为【new String(s.getByte(A), B)】;2、使用druid对各种数据库驱动做了一层统一的封装,编码转换。

674243574ea937b7345fa8dbf6b6c58b.png

java oracle中文乱码的解决方法:

转码方法

当Java读Oracle遇到中文乱码时,我们就需要进行转码。转码的方法很多,我接触过的有以下几种。

1、纯手工转码

将读到的字符串s进行转码,如:new String(s.getByte(A), B)

2、Druid

druid是阿里巴巴自己开发的一个驱动,它其实是对各种数据库驱动做了一层统一的封装,添加日志、告警、编码转换等功能。配置方式如下:

class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

serverEncoding=ISO-8859-1;clientEncoding=GBK;defaultRowPrefetch=50;bigStringTryClob=true

其中connectionProperties中包含serverEncoding、clientEncoding两个属性。在Java读取到数据后,如果发现serverEncoding、clientEncoding不同,则会自动进行如下编码转换。new String(s.getByte(serverEncoding), clientEncoding)

3、weblade ibatis callback

它采用了如下注册ibatis callback的方式。

class="com.asc.alibaba.dao.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate">

使得在默认情况下,程序会把ibatis获取到的String进行如下编码转换:new String(s.getByte(“ISO-8859-1”), “GBK”)

该二方库引入的方式如下:

com.alibaba.asc.shared

weblade.core.ibatisext

1.2.0-SNAPSHOT

Ibatis callback隐藏了编码转换的过程,但问题是它对项目中所有的数据源生效。使得无法同时透明地支持需要转码和无需转码的数据源。

感谢你能够认真阅读完这篇文章,希望小编分享解决java oracle中文乱码的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值