Domanda

Ho xml, in cui alcuni valori di elemento sono i caratteri unicode.È possibile rappresentare in una codifica ANSI?

E. g.

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

per

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

Io la deserializzazione XML e quindi tentare di serializzare utilizzando XmlTextWriter specificare la codifica di Default (Predefinito Windows-1252).Tutti i caratteri unicode finire come punti interrogativi.Sto usando VS 2008, C# 3.5

È stato utile?

Soluzione

Ok ho provato con il seguente codice:

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

E correttamente sfuggito il carattere unicode così:

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

Devo fare qualcosa di sbagliato da qualche altra parte.Grazie per l'aiuto.

Altri suggerimenti

Se ho capito bene la domanda, allora sì.Hai solo bisogno di un ; dopo il 27544:

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

O ti stai chiedendo come generare XML di questo tipo a livello di programmazione?Se è così, in che linguaggio/ambiente si sta lavorando?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top