无法打开/读取包含重音字符的XML文件

时间:2013-05-08 18:45:48

标签: c# xml

我有一个XML属性,用于收集重音字符:

     
 <TestCase Name="Canadian Addresses - Test Case" Description="Canadian Addresses - Test Case" OnOff="True" NegativeTest="False" RollbackDB="False" Performance="False" PerformanceSummary="False" TimesToExecute="1">

 <ProviderFacilitySearch_FindProviderFacility ProviderInfo="Dr Marc-André Kärcher Samuels Senior|10 Château du Feÿ Ave, North Building, North Sydney, NS  B2A 3L7 CANADA" />
 <ProviderFacilitySearch_ViewProviderFacility ProviderInfo="Dr Marc-André Kärcher Samuels Senior|10 Château du Feÿ Ave, North Building, North Sydney, NS  B2A 3L7 CANADA" />
 <ViewProvider_LocationName ExpectedLocationName="Kärcher Health Care" />
 <ViewProvider_ServicingAddress ExpectedServicingAddress="10 Château du Feÿ Ave|Central Building|North Sydney, NS  B2A 3L7|CANADA" />
 <ViewProvider_ExpandMailingAddress NA="" />
 <ViewProvider_MailingAddress ExpectedMailingAddress="10 Château du Feÿ Ave|Central Building|North Sydney, NS  B2A 3L7|CANADA" />
 <ViewProvider_ExpandBillingAddress NA="" />
 <ViewProvider_BillingAddress ExpectedBillingAddress="10 Château du Feÿ Ave|Central Building|North Sydney, NS  B2A 3L7|CANADA" />
 <ViewProvider_Close NA="" />
 <ProviderFacilitySearch_Cancel NA="" />
 <UserLogout/>
 </TestCase>

当我尝试使用C#代码读取此XML文件时,我得到:

  

2013/5/8 2:39:03错误:System.Xml.XmlException:给定编码中的字符无效。第86行,第74位。      在System.Xml.XmlTextReaderImpl.Throw(例外e)      在System.Xml.XmlTextReaderImpl.Throw(String res,String arg)      在System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32&amp; bytesCount,Int32&amp; charsCount)

我甚至无法使用IE打开页面。

有没有办法让这项工作?

2 个答案:

答案 0 :(得分:3)

使用此标题:

<?XML VERSION='1.0' ENCODING='ISO-8859-1'?>

修改

编码声明标识用于表示XML文档中的字符的编码。尽管XML解析器可以自动确定文档是使用UTF-8还是UTF-16 Unicode编码,但是此声明应该在支持其他编码的文档中使用。

答案 1 :(得分:0)

要查看文件是否按其标题所示的方式进行实际编码,请使用十六进制阅读器(例如HxD)查看存储的字节。

如果文件是UTF8,您应该看到类似的内容:

(...)  ProviderInfo="Dr Marc-André Kärcher Samuels Senior|10 Château du Feÿ Ave (...)