Вопрос

У меня есть xml, где некоторые значения элементов являются символами Unicode.Возможно ли представить это в кодировке ANSI?

Например.

<?xml version="1.0" encoding="utf-8"?>
<xml>
<value>受</value>
</xml>

Для

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

Я десериализую XML, а затем пытаюсь сериализовать его с помощью XmlTextWriter, указывая кодировку по умолчанию (по умолчанию используется Windows-1252).Все символы Юникода заканчиваются вопросительными знаками.Я использую VS 2008, C # 3.5

Это было полезно?

Решение

Хорошо, я протестировал это с помощью следующего кода:

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受</value></xml>";

 XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.Default };
 MemoryStream ms = new MemoryStream();
 using (XmlWriter writer = XmlTextWriter.Create(ms, settings))
      XElement.Parse(xml).WriteTo(writer);

 string value = Encoding.Default.GetString(ms.ToArray());

И он правильно экранировал символ Юникода таким образом:

<?xml version="1.0" encoding="Windows-1252"?><xml><value>&#x53D7;</value></xml>

Должно быть, я делаю что-то не так где-то в другом месте.Спасибо за помощь.

Другие советы

Если я правильно понимаю вопрос, то да.Тебе просто нужен ; после того, как 27544:

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

Или вам интересно, как сгенерировать этот XML программно?Если да, то на каком языке / среде вы работаете?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top