定义了字符串:str="我ABC汉字d"后
byte[] bytes = str.getBytes();
System.out.println(bytes.length);
结果输出的是10然后我不明白的是在java中不是一个字符占两个字节吗?
但根据结果来看,它好象是按照一个字节来算的
请问哪位知道是怎么回事情,或许我对哪里理解不对了
非常感谢!

解决方案 »

  1.   

    tanlingyun
    在java中字符是占两个字节的啊
    但为什么这里又按一个来算呢
      

  2.   

    java一个字符确实占两个字节,但是getBytes()会把英文字符编码成占一个字节
      

  3.   

    恩,一个char确实占两字节,我没怎么查呢,帮助上说使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
    我想是不系统的一个字符占一字节,用getBytes()时就把它当作一字节.
      

  4.   

    GB2312编码,ascil字符用单字节表示.