2013-05-08 2 views
2

У меня есть атрибут 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> 

Когда я пытаюсь читать этот XML-файл с помощью C# код, я получаю :

5/8/2013 2:39:03 PM ERROR: System.Xml.XmlException: Invalid character in the given encoding. Line 86, position 74. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) at System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount)

Я даже не могу открыть страницу с помощью IE.

Есть ли способ получить эту работу?

+7

Похоже, что ваш XML-файл поврежден. Я подозреваю, что он объявляет одну кодировку, но был написан другим. Вы ничего нам не сообщили о том, откуда появился этот файл, поэтому сложно дать больше информации, чем это, но не пытайтесь обойти проблему; исправьте его так, чтобы у вас был действительный XML-файл для начала. –

+0

Какую кодировку xml вы используете? ISO-код 8859-1 не срабатывает на некоторых акцентированных символах, тогда как UTF-8 не должен. – devilfish17

+0

Не могли бы вы разместить заголовок XML-файла? Это должно сказать, какой кодировкой он считает, что он работает. – criticalfix

ответ

2

Используйте этот заголовок:

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

Редактировать

, кодирующем декларации определяет, какая кодировка используется для представляют символы в документе XML. Хотя синтаксические анализаторы XML могут автоматически определять, если документ использует кодировку Юникода UTF-8 или UTF-16, это объявление должно использоваться в документах, которые поддерживают другие кодировки.

+0

Почему? Ответ должен объяснить, как это помогает решить вопрос – Mark

+0

Это сработало! Спасибо. – erman8

+0

ОК, Thaks вы Марк, мы не должны решать их проблемы, мы должны помочь им понять, как это работает, улучшит ответ и сохранит это в виду для следующего. – Logar314159

0

Чтобы посмотреть, действительно ли файл закодирован, как его заголовок говорит, что он использует шестнадцатеричный считыватель (например, HxD), чтобы просмотреть сохраненные байты.

Если файл UTF8, вы должны увидеть что-то похожее на это:

(...) ProviderInfo="Dr Marc-André Kärcher Samuels Senior|10 Château du Feÿ Ave (...) 
Смежные вопросы