String asd = "asd";
byte[] b = asd.getBytes();byte[] gb = asd.getBytes("GBK");
byte[] iso = asd.getBytes("iso-8859-1");
byte[] b = asd.getBytes();你应该使用 中文夹杂E文 试试!!
你就会发现不同的了!  
一般, getBytes() asd.getBytes("iso-8859-1"); 返回总是一样的!!
getBytes("GBK") 不一样的!!

解决方案 »

  1.   

    请问 GBK 是个什么编码啊?
    他跟 GB2312 有什么区别?
      

  2.   

    看看bytes的返回值...这个很正常啊 ..然后用新的编码,可以进行转换,比如GBK.
    new  String(s.getBytes("gb2312"),"ISO8859_1");ISO8859_1 是编码标识..而s.getBytes("gb2312")是返回的一个共用的字符标识!整行..能被辨认就行!byte本来就是8位的。!! 而生成创建string的时候,就按IS08859_1编码来创建..
    比如("\u0061\u0073\u0064").getBytes("GBK");他会更返回的int值得去GBK对应的编码表里去找字符。
    当转化的时候目标代码不存在。。于是就产生了乱码。
      

  3.   

    请问 GBK 是一种什么编码?
    他跟 GB2312 有什么区别呢?
      

  4.   

    学习并接分
    本人认同hesi726(hesi)的操作,字符串到字符数组应该没有改编码的。
    应该用了new  String(s.getBytes("gb2312"),"ISO8859_1");
    转换后会出现相应的变化。
      

  5.   

    asd.getBytes("iso-8859-1"); 
    中秋快乐
      

  6.   

    java使用的是unicode是十六位的
    byte是八位的一个字符应该由两个字节表示
    asd.getBytes();应该返回六个字节才对
    006100730064
    实际上是617364byte[] gb = asd.getBytes("GBK");
    byte[] iso = asd.getBytes("iso-8859-1");
    如果有中文的话 可定是不一样的 这个我知道比如("\u0061\u0073\u0064").getBytes("GBK");他会更返回的int值得去GBK对应的编码表里去找字符。
    当转化的时候目标代码不存在。。于是就产生了乱码。这句话说得有道理  不过好像不是  他会更返回的int值得去GBK对应的编码表里去找字符。
    是不是这样                     他会更返回的int值得去GBK对应的编码表里去找对应的byte。感觉有些牵强
      

  7.   

    public class Te{
    public static void main(String[] args){
    String asd = "asd";
    byte[] b = asd.getBytes();
    //byte[] iso = asd.getBytes("iso-8859-1");
    System.out.println(b);
    }
    }结果是
    [B@1858610
    不明白,呵呵,中秋快乐
      

  8.   

    '''             
                   (0 0)            
       +-----oOO----(_)------------+
       |                           |
       |          谢谢|谢谢        |                          
       |                           |
       +------------------oOO------+
                  |__|__|           
                   || ||            
                  ooO Ooo
      

  9.   

    byte[] b = asd.getBytes();用的是操作平台的缺省的字符集,
    可能正好和“gbk”的一样,
      

  10.   

    Thank you a lot.
    java使用的是unicode是十六位的
    byte是八位的