C# 发生System.Xml.Xml异常。名称不能以'G';字符,十六进制值0xFF27。第44行,位置4
我编写了一个代码来读取包含日语字符的xml文件。 为读取xml文件而编写的代码是: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。“ 我
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:实际上。然而。