当然不对了,应该是
 newstring=new String(s.getBytes("gb2312"),"ISO8859_1");这种形式。

解决方案 »

  1.   

    你可以先取得这个字符串,然后再转码:
    sTHDR = new String(theDataModel.GetItemBytes(2));
    sTHDR = new String(sTHDR.getBytes("ISO8859_1"),"GBK");
      

  2.   

    TO:namowen
    可我的变量sTHDR是String,我用上面的sTHDR = theDataModel.GetItemString(2);取得这个字符串在转码可以吗?
      

  3.   

    严格的讲应该是这样的,先判断theDataModel.GetItemBytes(2)是否为null
    String a=theDataModel.GetItemBytes(2);
    String b="";
    if (a==null){
    a="";}else{
    b=new String(a.getBytes("ISO8859_1"),"gb2312");}
    这样就彻底解决了中文问题了,我说的是针对你的这个问题。
      

  4.   

    应该是所取得字段类型,不可以用getBytes
    那个出问题的字段的类型是什么?
      

  5.   

    TO:littlecong
    varchar
    用theDataModel.GetItemString(2);取得是乱码应该怎么转换呢?
      

  6.   

    搞定给分……
    哦,在请教我把varchar型的数据用getBytes()取得行不行,取得后的数据是String型还是Byte型呢?
    我上面的问题使用sTHDR = new String(theDataModel.GetItemString(2));取得数据在象namowe说的:
    sTHDR = new String(sTHDR.getBytes("ISO8859_1"),"GBK");转码一下,为了保险加入了wjmmml的判断。:)
      

  7.   

    ------哦,在请教我把varchar型的数据用getBytes()取得行不行,取得后的数据是String型还是Byte型呢?
    varchar类型用getBytes来取出系统肯定出错,会提示字段类型出错,为什么字符型字段不用getString来提取数据?
      

  8.   

    我给你一个中文处理的方法,你用用看
    public String getStr(String str)//中文处理
    {
       try
       {
          String temp_p=str;
          byte[] temp_t=temp_p.getBytes("ISO8859-1");
          String temp=new String(temp_t);
          return temp;
       }
       catch(Exception e)
       {
          e.printStackTrace() ;
       }
       return "null";
    }