У меня есть xml, где некоторые значения элементов являются символами Юникода. Можно ли это представить в кодировке 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





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