Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
C# 发生System.Xml.Xml异常。名称不能以'G';字符,十六进制值0xFF27。第44行,位置4_C#_Xml_Utf 16 - Fatal编程技术网

C# 发生System.Xml.Xml异常。名称不能以'G';字符,十六进制值0xFF27。第44行,位置4

C# 发生System.Xml.Xml异常。名称不能以'G';字符,十六进制值0xFF27。第44行,位置4,c#,xml,utf-16,C#,Xml,Utf 16,我编写了一个代码来读取包含日语字符的xml文件。 为读取xml文件而编写的代码是: DataSet xmlData = new DataSet(); xmlData.ReadXml("c:\\abc.xml"); 但在执行此代码时,由于Xml文件第44行包含一个英文字符“G”,因此出现了异常“System.Xml.XmlException” 显示的错误消息为:=“名称不能以开头”G' 字符,十六进制值0xFF27。第44行,位置4。“ 我

我编写了一个代码来读取包含日语字符的xml文件。 为读取xml文件而编写的代码是:

        DataSet xmlData = new DataSet();            
        xmlData.ReadXml("c:\\abc.xml");
但在执行此代码时,由于Xml文件第44行包含一个英文字符“G”,因此出现了异常“System.Xml.XmlException”

显示的错误消息为:=“名称不能以开头”G' 字符,十六进制值0xFF27。第44行,位置4。“

我怎样才能解决这个问题。?? 下面给出了我的xml文件详细信息,包括编码描述

<?xml version="1.0" encoding="UTF-16" ?>

提前感谢,, Bijoy.

那是一个字母,不是普通的字母


将其替换为普通的
G

0xFF27是全宽拉丁字母“G”,与拉丁字母“G”不同。您应该使用拉丁字母(ASCII范围)而不是全宽字母(FF01-FF5E范围)。如果XML不太大,只需使用英文键盘并逐个替换所有字母。

您能显示XML吗,尤其是第44行周围的XML?DBN这是XML标记名第44行的内容,应仅包含ASCII字符。此XML文件由最终用户提供。我们不应该编辑。我们可以用其他的编码方式来读吗?@bjoy:你不能。这是非法的XML。就像你不能解析
,你也不能解析
。你可以通过减去
0xFFE0
来循环字符并用普通ASCII替换全宽字符,如果它介于
0xFF21
0xFF5A
@bjoy之间,你是说你必须不惜一切代价阅读它,然后,您应该使用自己的格式解析器,因为您拥有的不是XML。在XML中,标记名应该只包含ASCII字符,任何像样的XML解析器都会遇到这种情况。@Darin:实际上。然而。