那我顶楼代码就解释不过去了,为毛char[2]进了string,string长度却变成3

解决方案 »

  1.   

    首先要明白char和byte的区别
    char是字符,字符就有自己的编码方式
    byte是字节,它是二进制,没有编码方式
    因此:
    String test = new String(ch);
    System.out.println(test.length());//这里一定是2,因为字符串就是由字符组成的,这里有2个字符,所以长度是2
    byte[] b = test.getBytes();//但是,这里是按照默认的编码方式,把字符串编码成字节数组,默认的编码方式跟os相关,同一个字节数组在不同的编码方式下面表示的字符是不一样的!!!!!
    因此:byte[] b = test.getBytes();这种方式是不推荐使用的!
    正确的用法是:byte[] b = test.getBytes(“GBK”);在参数指定按照哪一种编码方式把字符串编码成字节数组
      

  2.   

    可能是0xFF&s 特殊字符用两个字节存储的原因吧