我使用了下面的代码来编写文件。
File.WriteAllText(fileName, data, Encoding.Unicode);
当我使用下面的代码读取文件时,因为文件编码的类型是特定于运行时的。
using (StreamReader sR = File.OpenText(fileName))
{
encoding = sR.CurrentEncoding;
}
我得到编码.UTF8
我还使用了This Link 中的方法
有人能建议找到编码的工作方法吗?
感谢
File.OpenText
:
打开一个现有的UTF-8编码文本文件进行读取。
所以它不会猜测文件是用什么编码的。即使你在写文件时使用了Encoding.Unicode
,File.OpenText
仍然会将其读取为UTF-8。
如果你想读取Unicode
中的文件,你可以创建一个StreamReader
,如下所示:
using (StreamReader sR = new StreamReader(fileName, Encoding.Unicode)) {
encoding = sR.CurrentEncoding; // Unicode
// ...
}
如果您不知道文件编码,则需要检测编码。