我遇到的问题是我无法读取包含外来字符的文件。据我所知,该文件采用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”。
(这是一个亵渎文件,所以如果你说法语,我会道歉。我一个人,不知道这意味着什么)
答案 0 :(得分:16)
证据清楚地表明该文件是不是的UTF-8格式。尝试System.Text.Encoding.Default
然后看看你是否得到了正确的文本 - 如果你这样做,你知道该文件在Windows-1252中(假设这是你的系统默认代码页)。在这种情况下,我建议您在记事本中打开文件,然后将其另存为“另存为”UTF-8,然后您可以正常使用Encoding.UTF8。
另一种检查文件实际编码方式的方法是在浏览器中打开它。如果重音显示正确,则浏览器检测到正确的字符集 - 因此请查看“视图/字符集”菜单以找出选择的字符集。如果重音没有正确显示,则通过该菜单更改字符集,直到它们为止。