Converting byte array to string in C#
本问题已经有最佳答案,请猛点这里访问。
是否有一种简单的方法可以将字节数组转换为字符串,以便通过以下单元测试?我找不到适用于所有值的编码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [TestMethod] public void TestBytToString() { byte[] bytArray = new byte[256]; for (int i = 0; i < bytArray.Length; i++) { bytArray[i] = (byte)i; } string x = System.Text.Encoding.Default.GetString(bytArray); for (int i = 0; i < x.Length; i++) { int y = (int)x[i]; Assert.AreEqual(i, y); } } |
1 | var str = System.Text.Encoding.Default.GetString(bytArray); |
1 | string x = Encoding.UTF8.GetString(bytArray, 0, bytArray.Length); |
本工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [TestMethod] public void TestBytToString() { byte[] bytArray = new byte[256]; ushort[] usArray = new ushort[256]; for (int i = 0; i < bytArray.Length; i++) { bytArray[i] = (byte)i; } string x = System.Text.Encoding.Default.GetString(bytArray); for (int i = 0; i < x.Length; i++) { int y = System.Text.Encoding.Default.GetBytes(x.Substring(i, 1))[0]; Assert.AreEqual(i, y); } } |
我知道这一切的价值远高于127字节是一个负的字符数和阳性结果的值,它只能以一未知的字符编码在每一个与你。
你可能会想的到无符号短整数字节数组转换成字符串,然后到(UShort)…………………