1、
char c = (char)0x8603;
byte[] b = BitConverter.GetBytes(c);是不是 b.Length 就是 c 的字节数?
2、
byte[] buffer = new byte[500];
buffer[0] = (byte)0;
Array.Copy(b,buffer,b.Length);传输协议里规定buffer[1]、buffer[2] 存放b,如果b.Length > 2 该怎么办?

解决方案 »

  1.   

    能不能 new 一个 char = 汉字 ?
      

  2.   

    //能不能 new 一个 char = 汉字 ?
    可以,任何Unicode字符都可以
      

  3.   

    Tenner(BE.Tenner) 问题 2 ,一般怎么处理?
      

  4.   


    我把string  “汉”,转成 byte[] 发现(ASCII) byte[0] = 186,byte[1] = 186,而“韩”,转成byte[]后,byte[0]=186,byte[1] = 171是不是每个unicode字符都对应着两个用 0~255范围内数字表示的字节?如果是数字和字母,发现转成 byte[] 后,byte[].length 只有一个?
      

  5.   

    2. 的处理方法很多,如果说协议并不去管buffer[2]以后的内容,那么是要写程序判断buffer.Length > 2 就行。另外要注意的就是你的程序里如果要用到 buffer[2],那么就说明buffer的长度至少是3
      

  6.   

    我把string  “汉”,转成 byte[] 发现(ASCII) byte[0] = 186,byte[1] = 186,而“韩”,转成byte[]后,byte[0]=186,byte[1] = 171是不是每个unicode字符都对应着两个用 0~255范围内数字表示的字节?如果是数字和字母,发现转成 byte[] 后,byte[].length 只有一个?============你去看一下关于字符集的编码
    中文windows现在用的一般是 UTF-8 编码,属于Unicode的一种
    Unicode把任何字符都编码为2个字节,如果是ASCII码(数字和字母)的字符,则其中一个字节是0,另一个是它的ASCII码