Java中文乱码——4、Java读Oracle乱码

        最近进行RAC迁移,将US7ASCII编码的RAC替换成UTF-8编码的单点ORACLE,迁移后发现Java从新库读到的中文是乱码,这引发了我
        最近进行RAC迁移,将US7ASCII编码的RAC替换成UTF-8编码的单点ORACLE,迁移后发现Java从新库读到的中文是乱码,这引发了我的考虑:
        1、Java为GBK,Oracle为ISO-8859-1时,Java读Oracle得到的中文是否会乱码?如何转码?
        2、Java为GBK ,Oracle为UTF-8时,Java读Oracle得到的中文是否会乱码?如何转码?
        结论让我很诧异,居然是:
        1、会乱码,需要通过newString (s.getByte(“ISO-8859-1”,”gbk”)进行转码
        2、不会乱码。

一、不需要转码的原因

        其实,无论Java、Oracle采用何种编码,在Java读Oracle都是不需要显式转码的。转码动作的动作会由Oracle驱动自动完成。确切地说,这还不算是转码,而只是解码。Oracle驱动仅仅是根据数据库定义的字符集,把读到的字节流解码成字符。