c# 把byte数组装换为字符串,再将该字符串装换为byte数组,得到的结果和原数组不一样了。怎么回事?

String str = Encoding.UTF8.GetString(bt); //bt是个byte数组,内容是从文件读出来的
byte[] newbt = new byte[bt.Length];
newbt = Encoding.UTF8.GetBytes(str);

你好,出现你上面的情况,有一种可能是,填充bt数组的那个文件不是UTF8编码的文件,而是其他格式,比如Unicode,Ansi等,如果文件中还包含汉字,或者符号,这种情况下,使用楼主用的代码,就会导致前后byte数组不一致。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-17
String str = Encoding.Default.GetString(bt); //bt是个byte数组,内容是从文件读出来的
byte[] newbt = new byte[bt.Length];
newbt = Encoding.UTF8.GetBytes(str);
第2个回答  2010-11-26
首先字符串是不是引用类型和和在结构中使用没关系,值类型和引用类型的区分就是传值来体现,如你写了两方法,你在另一个方法里面修改了前一个方法定义的一个值,如果那个值是值类型,那个值就不会边,如果是引用类型,那个值就会变

至于下面的问题初学的话就不要去弄了,越弄越糊涂,可以以后理解深了再去研究,不说你不会,许多工作了的人都不会去研究这些,一般的程序员用不上,呵呵

goodluck
第3个回答  2010-11-17
应该是操作有误。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网