我有一个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打开页面。
有没有办法让这项工作?
答案 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 (...)