request.setCharacterEncoding(gb2312);把这句加上

解决方案 »

  1.   

    String aa = result.getString(1);
    再 aa = aa.getBytes("GB2312") 试一下!!
    但需要你的操作系统支持中文字体才行!!!
      

  2.   

    String aa = result.getString(1);
    aa = new String(aa.getBytes("8859_1"),"gb2312");
    这样肯定行!
      

  3.   

    String aa = (new String(result.getString(1)).getBytes("8859_1"),"gb2312");
      

  4.   

    提取的时候可能还转换不过来,我碰见过这个问题,主要是在存入数据的时候一定得转换编码!
    String aa = result.getString(1);
    aa = new String(aa.getBytes("8859_1"),"gb2312");
      

  5.   

    这是由于数据库的缺省语言和操作系统缺省语言设置一致造成的,前面的朋友说的方法是可行的,我再说一种方法,这样你不用转换编码就可以看到查询出来的字串也是中文的.
    ----------------------------------------------------------------------
    linux系统对客户端用户的字符集的设置在每个客户名下的.bash_profile文件里:LANG为客户端系统字符集设置,通常设置为zh_CN就可以了NLS_LANG是客户端看linux端的数据库字符集设置,通常设为AMERICAN_AMERICA.ZHS16GBKlike this:NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
    export NLS_LANG
    LANG=zh_CN
    export LANG
      

  6.   

    已解决,是gbk to 8859_1
    aa=new String(result.getString(1),getBytes("GBK"),"8859_1");
    谢谢各位