gpt4 book ai didi

c# - StreamReader 无法正确读取扩展字符集 (UTF8)

转载 作者:可可西里 更新时间:2023-11-01 08:41:38 27 4
gpt4 key购买 nike

我遇到了无法读取包含外来字符的文件的问题。有人告诉我,该文件以 UTF-8 格式编码。

这是我的代码的核心:

using (FileStream fileStream = fileInfo.OpenRead())
{
using (StreamReader reader = new StreamReader(fileStream, System.Text.Encoding.UTF8))
{
string line;

while (!string.IsNullOrEmpty(line = reader.ReadLine()))
{
hashSet.Add(line);
}
}
}

该文件包含“achôcre”一词,但在调试过程中检查它时,它会将其添加为“ach�cre”。

(这是一个亵渎文件,如果你说法语,我深表歉意。我个人,不知道那是什么意思)

最佳答案

证据清楚地表明该文件不是 UTF-8 格式。试试 System.Text.Encoding.Default 看看你是否得到了正确的文本——如果你得到了,你就知道文件在 Windows-1252 中(假设这是你的系统默认代码页)。那样的话,我建议你用记事本打开这个文件,然后重新“另存为”为UTF-8,就可以正常使用Encoding.UTF8了。

另一种检查文件实际编码的方法是在浏览器中打开它。如果重音符号显示正确,则浏览器检测到正确的字符集——因此请查看“查看/字符集”菜单以找出选择了哪一个。如果重音显示不正确,则通过该菜单更改字符集,直到正确为止。

关于c# - StreamReader 无法正确读取扩展字符集 (UTF8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658060/

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