gpt4 book ai didi

c# - 在 Visual Studio 中创建的 JSON 文件开头的 "EF BB BF"

转载 作者:太空狗 更新时间:2023-10-29 21:21:13 25 4
gpt4 key购买 nike

我的一个项目中有一堆 JSON 文件设置为 Embedded resource。我正在使用 Newtonsoft.Json 来解析这些文件:

public static string ReadStringFromStream(string streamName)
{
using (System.IO.Stream stream = new EmbeddedResourceReader().GetType().Assembly.GetManifestResourceStream(streamName))
{
byte[] result = new byte[stream.Length];
stream.Read(result, 0, (int)stream.Length);
var str = Encoding.UTF8.GetString(result);
return str;
}
}
...

var traits = JsonConvert.DeserializeObject<Genre[]>(EmbeddedResourceReader.ReadStringFromStream("LNTCore.Genres.json"));
Genres = traits;

这会在 Newtonsoft.Json 中引发异常,因为它无法解析文件的开头。在这种情况下,最佳做法是什么?我应该如何处理这种情况?

谢谢!

最佳答案

这是字节顺序标记 (BOM)。

我假设您的第一个代码块显示了您如何获取文件。如果你想要没有 BOM 的 UTF-8 文件,你可以使用 UTF8Encoding构建没有 BOM 的编码实例的构造函数:

var str = new UTF8Encoding(false).GetString(result);

关于c# - 在 Visual Studio 中创建的 JSON 文件开头的 "EF BB BF",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44098326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com