C# 字节数组到字符串并返回。困惑的

C# 字节数组到字符串并返回。困惑的,c#,C#,这个代码有什么问题?为什么会有差异 byte [] data = new byte [] {0x21, 0x4B, 0x9B, 0xE1, 0x2D, 0xA7, 0x4B, 0x93, 0x1E, 0x3F, 0xDA, 0x4F, 0xB1}; Console.WriteLine(BitConverter.ToString(data)); string dataStr = ASCIIEncoding.ASCII.GetString(data); byte[] ca = ASC

这个代码有什么问题?为什么会有差异

byte [] data = new byte [] {0x21, 0x4B, 0x9B, 0xE1, 0x2D, 0xA7, 0x4B, 0x93, 0x1E, 0x3F, 0xDA, 0x4F, 0xB1};
Console.WriteLine(BitConverter.ToString(data));

string dataStr = ASCIIEncoding.ASCII.GetString(data);       
byte[] ca = ASCIIEncoding.ASCII.GetBytes(dataStr);
Console.WriteLine(BitConverter.ToString(ca));
输出:

21-4B-9B-E1-2D-A7-4B-93-1E-3F-DA-4F-B1

21-4B-3F-3F-2D-3F-4B-3F-1E-3F-3F-4F-3F-3F


ASCII没有在
7F
上面定义字符代码,似乎
ascienceoding.ASCII.GetString()
选择用
3F
替换无效字节,后者表示字符


您可能需要阅读。

感谢评论员找到了副本。