为什么转换后,根据str值不同,有的后面被填充了非常多的0(str长度500多点,转换后2048,后面全是0),而有的没有填充,

解决方案 »

  1.   

    你的str 是不是都是汉字,一个汉字两个字节,一个字节占两位,2048/4=512个汉字,你看看是不是str的长度超过512了
      

  2.   

    你byte[]是长度一定的,字符填充完,后面就是0啊,数组1000个,字符填充前100个,那么后900个就是0
      

  3.   

    关键是后面填了很多0,并且这个str是从网络接收到的,然后我监控后,复制下来,直接赋值给str,然后转换就很正常,没有0
      

  4.   

    二楼,这个不需要去new byte(n)哈,直接赋值
      

  5.   

    你检查下str及str的长度,str后面是不是有什么\0字符
      

  6.   

    我怀疑是不是编码的原因,因为接收到的byte[] 是通过gdk方式转换成字符串的(服务器编码是gdk)然后通过默认的gb2312是不是就会出现这种情况
      

  7.   

    没有,但有很多特殊字符,就是marc中的一些特殊字符 像ascii码中的30,31,32