Nicht-Unicode-XML-Darstellung
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>殘</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
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>受</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>殘</value>
</xml>
Oder fragen Sie sich, wie Sie diese XML programmatisch zu generieren? Wenn ja, welche Sprache / Umgebung arbeiten Sie?