当文件编码为 Unicode 时,C# XmlDocument.Load(string) 失败

C# XmlDocument.Load(string) fails when Encoding for file is Unicode

我想使用 XmlDocument.Load(String) 方法从 xml 文件加载 XMLDocument,但是当我尝试使用它时出现此错误:

System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character. Line 2, position 1.

当我试图在 Visual Studio 中打开文件时,文件的编码是 Unicode 并且 Visual studio 自动切换到 Unicode (UTF-8)。 在我用 *Unicode(UTF-8) 编码保存文件后,程序运行完美。

为什么会出现这种情况,并且可以使用此方法加载 Unicode 编码的文件?

我能够解决这个问题,方法是使用 StreamReader class 加载文件的内容,然后我使用 XmlDocument.Load(流) 方法。

代码如下:

 XmlDocument xmlDocument = new XmlDocument();
 StreamReader reader = new StreamReader(filePath);
 xmlDocument.Load(reader);
 reader.Close();