C#WriteAllText仅以编码UTF8格式写入



我使用了下面的代码来编写文件。

File.WriteAllText(fileName, data, Encoding.Unicode);

当我使用下面的代码读取文件时,因为文件编码的类型是特定于运行时的。

using (StreamReader sR = File.OpenText(fileName))
{
encoding = sR.CurrentEncoding;
}

我得到编码.UTF8

我还使用了This Link 中的方法

有人能建议找到编码的工作方法吗?

感谢

File.OpenText:

打开一个现有的UTF-8编码文本文件进行读取。

所以它不会猜测文件是用什么编码的。即使你在写文件时使用了Encoding.UnicodeFile.OpenText仍然会将其读取为UTF-8。

如果你想读取Unicode中的文件,你可以创建一个StreamReader,如下所示:

using (StreamReader sR = new StreamReader(fileName, Encoding.Unicode)) {
encoding = sR.CurrentEncoding; // Unicode
// ...
}

如果您不知道文件编码,则需要检测编码。

最新更新