Oracle jdbc读取为UTF-8字符 (ojdbc8中代码bug)导致乱码问题-下

这篇博客主要探讨了在ojdbc6和ojdbc8中处理Oracle数据库返回数据时的差异,特别是字符编码的问题。在ojdbc6中,数据以GBK类型读取并正确转换,而在ojdbc8中,由于转换方法的改变,导致可能出现乱码。文章详细分析了转换过程中0xFF的作用,指出在转换byte到char时,不使用0xFF可能会因为补码运算导致错误。
摘要由CSDN通过智能技术生成

首先我们在获取返回的数据 首先初始化一系列数据

为每一列的列属性进行配置 如列名等

然后是对Oracle返回的数据进行获取,我们对ojdbc6和ojdbc8进行比较

Ojdbc6中在此处,获取到数据库返回的byte[]数组,为GBK类型

这一步 获取 byte[]数组

 

接着将获取到的byte数组 变为java中的char  放置在rowspacehchar中  再getString时候调用,(rowspacehchar存放返回数据的所有内容)

 

将ascii码转换为java的chars ,ojdbc6中获取到的为GBK的byte[]

 

 

Ojdbc8中

该方法 获取数据库的byte[]数组也为gbk类型(张三的gbk   byte)

下列方法为 获取到Oracle 的返回数组方法(readRxd()方法)

 

 

Ojbc8为在getString时候对byte[]数组生成新的String   与Ojbc6中不同

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值