我正在尝试将一些文件读取为字节并将其与“\u0019\u0093\r\n\u001a\n”进行比较。我确信我总会得到 byte[]{ 0x19, 0x93, 0x0d, 0x0a, 0x1a, 0x0a }。
我尝试将这些字节转换为字符串并与字符串进行比较,但总是错误。
所以我尝试将字符串转换为字节。但当我比较它们时也总是错误的。
(在 Windows 10 上使用 .NET Core 3.0)
我尝试像下面的代码
byte[] bytes = new byte[]{ 0x19, 0x93, 0x0d, 0x0a, 0x1a, 0x0a };
string s = "\u0019\u0093\r\n\u001a\n";
System.Console.WriteLine(Encoding.Default.GetString(bytes) == s);
System.Console.WriteLine(s.Length);
foreach (var b in Encoding.Default.GetBytes(s))
{
System.Console.WriteLine("Byte: "+b);
}
System.Console.WriteLine(Encoding.Default.GetString(bytes) == s);
输出是:
False
6
Byte: 25
Byte: 194
Byte: 147
Byte: 13
Byte: 10
Byte: 26
Byte: 10
False
比较总是返回 false。我发现从字符串转换为字节后,我又多了一个字节,并且不知道 194 来自哪里。为什么会出现这种情况?
我想转换后它们应该是相等的。这是错的吗?
如果我想得到我所期望的,我该怎么办?
喵喔喔