Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当文件编码为Unicode时,C#XmlDocument.Load(string)失败_C#_Encoding_Character Encoding_Xmldocument - Fatal编程技术网

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

当文件编码为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

我想使用XMLDocument.load(String)方法从xml文件加载XMLDocument,但在尝试使用它时出现以下错误:

System.Xml.XmlException:“.”十六进制值0x00无效 性格第2行,位置1

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


为什么会发生这种情况,并且可以用这种方法加载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(如果可能的话)。