XML-представление, отличное от Unicode
Вопрос
У меня есть xml, где некоторые значения элементов являются символами Unicode.Возможно ли представить это в кодировке ANSI?
Например.
<?xml version="1.0" encoding="utf-8"?>
<xml>
<value>受</value>
</xml>
Для
<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>殘</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>受</value></xml>
Должно быть, я делаю что-то не так где-то в другом месте.Спасибо за помощь.
Другие советы
Если я правильно понимаю вопрос, то да.Тебе просто нужен ;
после того, как 27544
:
<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>殘</value>
</xml>
Или вам интересно, как сгенерировать этот XML программно?Если да, то на каком языке / среде вы работаете?