【发布时间】:2014-03-01 18:54:13
【问题描述】:
我不知道为什么,但是当你做下一件事时,你将永远不会得到与原始字节数组相同的结果:
var b = new byte[] {252, 2, 56, 8, 9};
var g = System.Text.Encoding.ASCII.GetChars(b);
var f = System.Text.Encoding.ASCII.GetBytes(g);
如果您运行此代码,您会看到 b != f,为什么?! 有什么方法可以将字节转换为字符,然后再转换回字节并与原始字节数组相同?
【问题讨论】:
-
因为
252不能用作 ASCII 字符(它是 7 位)。所以任意字节数组和字符串之间的转换都是有损的。 -
你想用这些字符做什么?
-
@L.B 我该如何解决?
-
@AndrewMorton 这有关系吗?
-
@ZilbermanRafael 使用
Convert.ToBase64String和Convert.FromBase64String