例如:
String mTempContent = null;
byte[] smsRegist = new byte[] { 0, 0, 0, 0 };
smsRegist[0] = 4
smsRegist[1] =3
smsRegist[2] = 102;
smsRegist[3] = 0x00;第一种转换:
mTempContent = new String(smsRegist);
第二种转换:
              mTempContent = smsRegist.toString();
采用第一种转换的时候发送短信的时候回出现重启的问题,但是采用第二种的时候不回出现重启。麻烦大侠们指教下,这两个有什么不同?谢谢!

解决方案 »

  1.   

    我记得这两种转出来的都是乱码吧,我一般用把byte[] 转String是这样的.
    String str = new String(byte[], 0, byte[].length);
      

  2.   

    1楼的这种用法和楼主的第一种转换是一样的。这样转化会把前两个byte 0x04 0x03的值直接当字符使用。这两个ascii码对应的字符是控制字符,不可见。
    可能短信通信协议里对这种非法字符没有特殊处理,引起异常了。楼主你想转换成什么样子?