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 该怎么办?
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 该怎么办?
可以,任何Unicode字符都可以
我把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码