请将你的java源文件加上 -encoding=GBK 重新编译,无需转码就可以了.

解决方案 »

  1.   

    不是这个问题
    你的oracle版本是什么?换个jdbc驱动http://www.csdn.net/Expert/TopicView1.asp?id=781045
      

  2.   

    换817的 
    包括classes12.zip和nls_charset12.zip
      

  3.   

    1、首先用SQLplus或其他工具检查一下你数据中的数据是中文还是乱码。
    2、你要存取的字段是不是National Language的那些类型,如NChar,NVARChar等。
    3、Oralce的JDBC驱动程序应该没有问题。
    4、也不应该是Unicode的问题,编码转换不过来会显示?。
    说明一下你的运行环境,比如jsp中,Java Application中,也许能够让别人更好的帮助你。将你存取数据库的代码贴出来给大家看看。
      

  4.   

    先将汉字转换成gb2312格式存入数据库取出时就可以直接取出来,当然显示时也要已gb2312显示
      

  5.   

    用函数先进行转换:
    public String getStr(String str)
    {
       try
       {
          String temp_p=str;
          byte[] temp_t=temp_p.getBytes("ISO8859-1");
          String temp=new String(temp_t,"gb2312");
          return temp;
        }
        catch(Exception e)
        {
        }
        return "null";
    }
      

  6.   

    oracle816的jdbc驱动有一个bug,在双字节内码的情况下,用getString()
    获取的时候就会发生帖主的问题
    我也遇到过,用817的驱动代替就可以了
      

  7.   

    可以看这里面的讨论http://www.csdn.net/Expert/TopicView1.asp?id=781045