2008-09-17 6 views
2

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

E.g.

<?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

ответ

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> 

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

4

Если я понимаю вопрос, то да. Вам просто нужно ; после 27544:

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

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

+0

Опечатка с моей стороны. Исправлен пример. –

 Смежные вопросы

  • Нет связанных вопросов^_^