Я нашел этот вопрос , который похож на мой, я также подписываю документ XML с библиотекой, использующей XmlDocument, и у меня такая же проблема.
Мой вопрос вот почему и если возможно, как этого избежать. Я даже не использую метод Load , а заменяю Inner XML, пытаясь избежать синтаксического анализатора без результата.
string XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<HtmlEncode>" +
"<accents>" + HttpUtility.HtmlEncode("áéíóúÁÉÍÓÚ") + "</accents>" +
"<tilde>" + HttpUtility.HtmlEncode("ñÑ") + "</tilde>" +
"<specialChar>" + HttpUtility.HtmlEncode("&") + "</specialChar>" +
"<text>" + HttpUtility.HtmlEncode("Pérez & Compañía") + "</text>" +
"</HtmlEncode>";
txtOriginal.Text = XML;
System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
xDoc.InnerXml = XML;
txtEncoded.Text = xDoc.InnerXml;
original XML
<?xml version="1.0" encoding="UTF-8"?>
<HtmlEncode>
<accents>áéíóúÁÉÍÓÚ</accents>
<tilde>ñÑ</tilde>
<specialChar>&</specialChar>
<text>Pérez & Compañía</text>
</HtmlEncode>
XML после синтаксического анализатора
<?xml version="1.0" encoding="UTF-8"?>
<HtmlEncode>
<accents>áéíóúÁÉÍÓÚ</accents>
<tilde>ñÑ</tilde>
<specialChar>&</specialChar>
<text>Pérez & Compañía</text>
</HtmlEncode>
Кто-нибудь может указать мне правильное направление?
Сейчас я вручную заменяю акценты и тильды на символы без них, но я бы предпочел закодировать правильные символы.