这篇文章主要介绍了解决java甲骨文中文乱码的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
java甲骨文中文乱码的解决方法:1、将读到的字符串,则进行纯手工转码,代码为【新字符串(s.getByte (A), B)】; 2、使用德鲁伊对各种数据库驱动做了一层统一的封装,编码转换。
引用>
<强> java甲骨文中文乱码的解决方法:强>
<强>转码方法强>
当java读甲骨文遇到中文乱码时,我们就需要进行转码。转码的方法很多,我接触过的有以下几种。
1,纯手工转码
将读到的字符串年代进行转码,如:新的字符串(s.getByte (A), B)
2,德鲁伊
德鲁伊是阿里巴巴自己开发的一个驱动,它其实是对各种数据库驱动做了一层统一的封装,添加日志,告警,编码转换等功能。配置方式如下:
& lt; bean id=皁pensqlDataSource" 类=皁rg.apache.commons.dbcp.BasicDataSource" 销毁方法=癱lose"比; & lt;属性名=癲riverClassName"值=https://www.yisu.com/zixun/" com.alibaba.china.jdbc.SimpleDriver "/> <属性名=" url " value=" jdbc: oracle:薄:@10.20.130.210:1521:dwt "/> <属性名="用户名" value=" etl "/> <属性名="密码" value=" etl "/> <属性名=" connectionProperties "> <价值> serverEncoding=iso - 8859 - 1; clientEncoding=GBK; defaultRowPrefetch=50; bigStringTryClob=true 值> 属性> 豆>其中connectionProperties中包含serverEncoding, clientEncoding两个属性。在Java读取到数据后,如果发现serverEncoding, clientEncoding不同,则会自动进行如下编码转换。
新的字符串(s.getByte (serverEncoding) clientEncoding)3, weblade ibatis调
它采用了如下注册ibatis回调的方式。
& lt; bean id=皊qlMapExecutorDelegate" 类=癱om.asc.alibaba.dao.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate"比; & lt;属性名=癿appedStatementStrategy"ref=癿appedStatementStrategy"/比; & lt;属性名=癶andlerList"祝辞 & lt; list> & lt;裁判bean=皊tringHandler"/比; & lt; !——& lt;裁判bean=皁bjectHandler"/祝辞——比; & lt;/list> & lt;/property> & lt;/bean> & lt; bean id=皊tringHandler"类=癱om.asc.alibaba.dao.ibatis.handler.TypeHandlerAdapter"比; & lt;属性名=癹avaType"值=https://www.yisu.com/zixun/"以"/> <属性名=" handlerCallback“ref=" stringTypeHandlerCallback "/> 豆>使得在默认情况下,程序会把ibatis获取到的字符串进行如下编码转换:
新的字符串(s.getByte (“iso - 8859 - 1”)、“GBK”)该二方库引入的方式如下:
& lt; dependency> & lt; groupId> com.alibaba.asc.shared & lt; artifactId> weblade.core.ibatisext & lt; version> 1.2.0-SNAPSHOT & lt;/dependency>Ibatis调隐藏了编码转换的过程,但问题是它对项目中所有的数据源生效,使得无法同时透明地支持需要转码和无需转码的数据源。
感谢你能够认真阅读完这篇文章,希望小编分享解决java甲骨文中文乱码的方法内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!
解决java甲骨文中文乱码的方法