Pregunta

He xml en el que algunos de los valores de los elementos son caracteres unicode.Es posible representar esto en una codificación ANSI?

E. g.

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

a

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

Yo deserializar el XML y, a continuación, intente serializar el uso de XmlTextWriter la especificación de la codificación Predeterminada (por Defecto es Windows-1252).Todos los caracteres unicode terminan como signos de interrogación.Estoy usando VS 2008, C# 3.5

¿Fue útil?

Solución

Bueno lo he probado con el siguiente código:

 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());

Y correctamente escapó el carácter unicode así:

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

Debo estar haciendo algo mal en alguna otra parte.Gracias por la ayuda.

Otros consejos

Si entiendo la pregunta, entonces sí.Sólo se necesita una ; después de la 27544:

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

O usted se está preguntando cómo generar este XML mediante programación?Si es así, ¿en qué idioma/medio ambiente está trabajando en?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top