1.“汉”的Unicode编码为6C49,这个编码是怎么运算来的?我使用UltraEdit查看“汉”的十六进制编码为 ba ba ,这个16进制和Unicode编码之间有什么联系?2.在java中使用的编码是Unicode的,我使用如下代码
String str = "汉";
byte[] strArr = str.getBytes();
其中strArr有两个元素,每一个都只-70,这个不知道该怎么理解?
strArr = str.getBytes("unicode");这样的话答案输出:
-1
-2
73
108
那个-1 -2 怎么来的?3.http://topic.csdn.net/u/20080623/16/e0f44f00-eaf9-4d38-b325-a3cc443f2ec9.html
这个是关于“三只小熊”编码问题的讨论贴,其中“三只小熊”的gbk编码为 C8FD D6BB D0A1 D0DC (详见11楼火龙果回帖),而“三只小熊”的十六进正好为:C8 FD D6 BB D0 A1 D0 DC ,我想问一下,各种编码和字符的某种进制表示到底是什么关系?

解决方案 »

  1.   

    编码是编码 编码是需要表示出来的  可以用16进制的表示 也可以用2进制的 三只小熊就是用16进制表示的gbk编码至于你说unicode编码是怎么运算得来的 这不是运算来的 是unicode编码表的 也就是说是规定的
      

  2.   

    你说的"汉"的编码是BABA,这是它的gbk编码,而不是unicode,unicode是6C49
      

  3.   

    你str在用getBytes之后,放到数组中去,而6C49你转换成2进制之后,再按byte切割(每8位一个byte),再比较你就会发现是一样的
      

  4.   

    1.“汉”的Unicode编码为6C49,这个编码是怎么运算来的?编码就是一种规范。用计算机可以表示的形式代替它表示不了的东西。就像我们用“4e00”来表示汉字“一”
    就当成一个字典看。我使用UltraEdit查看“汉”的十六进制编码为 ba ba ,这个16进制和Unicode编码之间有什么联系? 
    baba是GBK编码。和unicode是两种编码。可以认为是两个不同的字典。
    2.在java中使用的编码是Unicode的,我使用如下代码 
    String str = "汉"; 
    byte[] strArr = str.getBytes(); 
    其中strArr有两个元素,每一个都只-70,这个不知道该怎么理解? 

    String.getBytes();是按照系统的默认编码转化为字节。windows中文系统通常是GBK。
    GBK编码用两个字节表示一个中文字符。-70 表示成16进制就是0xba,就是你上面说的 ba ba
    strArr = str.getBytes("unicode");这样的话答案输出: 
    -1 
    -2 
    73 
    108 
    那个-1 -2 怎么来的? 

    -1 -2表示的是字节序,
    看这个老贴子
    http://topic.csdn.net/u/20081009/09/e899898c-591f-4985-ae88-5972475708fb.html
      

  5.   

    谢谢微笑猴子,6c49 换成二进制应该是0110 1100 0100 1001 这个按照byte怎么分割?能详细说说吗?谢谢!!