将文件读入字节数组与字符串不同
本文关键字:字符串 数组 字节数 文件 字节 | 更新日期: 2023-09-27 17:50:28
我在visual studio中有一个文件,内容如下:"{"Name":"Pete"}"如果我用下面的代码读取文件,它似乎创建了一个具有原始值的字符串:
byte[] byteArray = System.IO.File.ReadAllBytes(filePath);
string jsonResponse = System.Text.Encoding.UTF8.GetString(byteArray);
但是,如果我使用以下代码,该字符串实际上与存在的版本不同:
string jsonResponse = "{'"Name'":'"Pete'"}";
为什么?(我认为这是不同的原因是因为当我传递每个版本的json反序列化器它的行为不同)
谢谢。
考虑到您在问题中的最后注释,我怀疑问题是您在文件开头有一个字节顺序标记。试着这样加载文件:
string jsonResponse = File.ReadAllText(filePath);
我相信将为您剥离BOM。或者,您可以尝试自己显式地修剪它:
jsonResponse = jsonResponse.TrimStart(''feff');
我猜你的文件中有一个结束换行符。
您可以很容易地验证两个字符串在c#中是否具有相同的内容,只需将它们与a == b
进行比较。
< >
包围,这将帮助您识别周围的空白(顺便说一下,可以使用String.Trim删除空白)。
byte[] byteArray = System.IO.File.ReadAllBytes(filePath);
string fromFile = System.Text.Encoding.UTF8.GetString(byteArray);
string fromString = "{'"Name'":'"Pete'"}";
if (fromFile == fromString) {
Console.WriteLine("Strings are the same.");
} else {
Console.WriteLine("Strings are different!");
Console.WriteLine("fromFile: <" + fromFile + ">");
Console.WriteLine("fromString: <" + fromString + ">");
}