当文件编码为Unicode时,C#XmlDocument.Load(string)失败
我想使用XMLDocument.load(String)方法从xml文件加载XMLDocument,但在尝试使用它时出现以下错误: System.Xml.XmlException:“.”十六进制值0x00无效 性格第2行,位置1 当我尝试在Visual Studio中打开文件时,文件的编码是Unicode,Visual Studio会自动切换到Unicode(UTF-8)。 在我用*Unicode(UTF-8)编码保存文件后,程序运行得非常完美当文件编码为Unicode时,C#XmlDocument.Load(string)失败,c#,encoding,character-encoding,xmldocument,C#,Encoding,Character Encoding,Xmldocument,我想使用XMLDocument.load(String)方法从xml文件加载XMLDocument,但在尝试使用它时出现以下错误: System.Xml.XmlException:“.”十六进制值0x00无效 性格第2行,位置1 当我尝试在Visual Studio中打开文件时,文件的编码是Unicode,Visual Studio会自动切换到Unicode(UTF-8)。 在我用*Unicode(UTF-8)编码保存文件后,程序运行得非常完美 为什么会发生这种情况,并且可以用这种方法加载Uni
为什么会发生这种情况,并且可以用这种方法加载Unicode编码的文件?我能够解决这个问题,方法是使用StreamReader类加载文件的内容,然后使用XmlDocument.load(Stream)方法 代码如下:
XmlDocument xmlDocument = new XmlDocument();
StreamReader reader = new StreamReader(filePath);
xmlDocument.Load(reader);
reader.Close();
通过使用StreamReader类加载文件内容,然后使用XmlDocument.load(Stream)方法,我能够解决这个问题 代码如下:
XmlDocument xmlDocument = new XmlDocument();
StreamReader reader = new StreamReader(filePath);
xmlDocument.Load(reader);
reader.Close();
如果第1行有utf8以外的内容,则必须跳过第一行。导致问题的是文本文件的格式。我不想跳过xml文件中的任何一行。我想了解为什么该方法会在编码时引发此异常,并且我想能够加载xml文件,即使编码是Unicode(如果可能的话)。如果第1行有utf8以外的内容,则必须跳过第一行。导致问题的是文本文件的格式。我不想跳过xml文件中的任何一行。我想了解为什么该方法会在编码时抛出此异常,并且我想能够加载xml文件,即使编码是Unicode(如果可能的话)。