用socket读出来bytes是UTF8编码的,我要转成GBK,却没反应:new String(bytes,"GBK").

解决方案 »

  1.   

    String gb = new String (name.getBytes(iso8859-1),"UTF-8");
      

  2.   

    hehe, 既然你的 bytes 是 UTF8 的,那就应该是
        String str = new String(bytes, "UTF-8");
        byte[] ba = str.getBytes("GBK");
      

  3.   

    maquan('ma:kju) 说得对,支持一下
      

  4.   

    "要转成GBK",不是酱紫的。maquan('ma:kju) 说得对,支持。推荐搂主看文章:
    http://www.regexlab.com/zh/encoding.htm
      

  5.   

    啊,真的呀,我要试试咯,我怎么记成是    
     byte[] bytes= str.getBytes(sourceEncoding);
     String str = new String(bytes, destEncoding);
      

  6.   

    我来给楼主补补基础知识:
    UTF8是Unicode的一种,其特点是会根据内容不同采取不定长的存储策略,比如对于英文字母它会采取ascii码一样的8位存取,而对于中文这种数据量要求大的,它会采取32位存取。
    相对应的是UTF16,它的特点是全部采用16位编码表示所有内容。java内部机制都是采用UTF16,所以java中的char是16位的,而不是8位的。