C# 字符串转换成byte数组问题 C# 将字符串按Big Endian字节顺序的UTF-8编码将字符串转换成byte数组,数组的前两个字节描述的是后续字节数组的长度,代码怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用Encoding.UTF8.GetBytes转换成byte数组,数组本身有长度,为何还要保存到前两个字节?如果数组是一个比较大的长度为long型的数组,两个字节也放不下啊。 byte[] bs=Encoding.UTF8.GetBytes(text);long bsl=bs.Length;byte[] hd=Convert.ToBytes(bsl);byte[] res==new byte[bsl+8];Array.Copy(hd,0,res,0,8);Array.Copy(bs,0,res,8,bsl);res 就是了。上边的代码写的很繁琐,是为了你能看明白。其实很多代码可以写在一起的。也不用声明那么多变量。不过我这里不是前2字节存长度,而是换了一个long, 如果你确定长度只要两字节就够了,那你换成short int16也可以 string s = "aaaaa";BinaryWriter.write(s);用BinaryWriter.write方法写到文本时,回自动在前面加上后续字节数..用UE打开文本就看的到 byteArry = System.Text.Encoding.Default.GetBytes(aa); C#新手 Datagridveiw里如何实现只能输入固定位数数字并且可以Ctrl c Ctrl v? 面试问题 求SQLserver中操作视图,对其涉及的基表进行增加、删除、修改的语句!谢谢大家! 怎样设置编译器选项 高手请进! 求高人知道一下XML合并的问题 学徒,求大神指教!! 如何把RichTextBox的内容保存到数据库?? 如何编写此程序?(c) 代理和委托一样吗? 更新程序和C# datagridview 输入法问题
long bsl=bs.Length;
byte[] hd=Convert.ToBytes(bsl);
byte[] res==new byte[bsl+8];
Array.Copy(hd,0,res,0,8);
Array.Copy(bs,0,res,8,bsl);res 就是了。
上边的代码写的很繁琐,是为了你能看明白。其实很多代码可以写在一起的。也不用声明那么多变量。
不过我这里不是前2字节存长度,而是换了一个long, 如果你确定长度只要两字节就够了,那你换成short int16也可以
BinaryWriter.write(s);
用BinaryWriter.write方法写到文本时,回自动在前面加上后续字节数..用UE打开文本就看的到