gpt4 book ai didi

c# - 如何检测 .NET StreamReader 是否在基础流上找到 UTF8 BOM?

转载 作者:可可西里 更新时间:2023-11-01 03:07:40 26 4
gpt4 key购买 nike

我得到一个 FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.ReadWrite),然后是一个 StreamReader(stream,true)

有没有一种方法可以检查流是否以 UTF8 BOM 开头?我注意到没有 BOM 的文件被 StreamReader 读取为 UTF8。

如何区分它们?

最佳答案

与其对字节进行硬编码,不如使用 API 更漂亮

public string ConvertFromUtf8(byte[] bytes)
{
var enc = new UTF8Encoding(true);
var preamble = enc.GetPreamble();
if (preamble.Where((p, i) => p != bytes[i]).Any())
throw new ArgumentException("Not utf8-BOM");
return enc.GetString(bytes.Skip(preamble.Length).ToArray());
}

关于c# - 如何检测 .NET StreamReader 是否在基础流上找到 UTF8 BOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012167/

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