Frage

Ich habe xml, wo einige der Elementwerte sind Unicode-Zeichen. Ist es möglich, dies in einer ANSI-Codierung darstellen?

z.

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

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

ich deserialisieren die XML und dann versuchen, es zu serialisieren mit XmlTextWriter die Standardkodierung Angabe (Standard ist die Windows-1252). Alle Unicode-Zeichen am Ende als Fragezeichen auf. Ich verwende VS 2008, C # 3.5

War es hilfreich?

Lösung

Okay, ich getestet es mit dem folgenden Code:

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

Und es entging richtig die Unicode-Zeichen so:

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

Ich muss etwas falsch woanders tun. Danke für die Hilfe.

Andere Tipps

Wenn ich die Frage verstehen, dann ja. Sie brauchen nur einen ; nach dem 27544:

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

Oder fragen Sie sich, wie Sie diese XML programmatisch zu generieren? Wenn ja, welche Sprache / Umgebung arbeiten Sie?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top