XML Deserialisieren mit UTF-8-Codierung
Ich such schon heute viel dazu und ich kann nicht herausfinden, wie zu Deserialisieren mit UTF-8-Codierung.
<?xml version="1.0" encoding="UTF-8"?>
<AvailabilityRequestV2 xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"
siteid="0000"
apikey="0000"
async="false" waittime="0">
<Type>4</Type>
<Id>159266</Id>
<Radius>0</Radius>
<Latitude>0</Latitude>
<Longitude>0</Longitude>
</AvailabilityRequestV2>
Wenn ich versuche diese
string xmlString = File above;
XmlSerializer serializer = new XmlSerializer(typeof(AvailabilityRequestV2));
AvailabilityRequestV2 request = (AvailabilityRequestV2)serializer.Deserialize(
new MemoryStream(Encoding.UTF8.GetBytes(xmlString)));
Wenn ich im debugging-Modus mit der Maus über Anforderung bekomme ich diese:
{<?xml version="1.0" encoding="utf-16"?><AvailabilityRequestV2
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
..................
Wie kann ich die Kraft, mit der UTF-8 ?
Sah ich nur zu Serialisieren, aber Deserialisieren ich nicht.
InformationsquelleAutor user1837862 | 2013-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine
StreamReader
und angeben, UTF-8, Sie können auch sagen, dass die Stückliste, falls vorhanden:Ich bin mir nicht sicher, was passiert, wenn die XML-reader-jedoch trifft auf die
encoding="utf-16"
Richtlinie innerhalb der XML-Datei, kann es Umschalten.InformationsquelleAutor Lloyd
Sobald Sie schlürfte den Inhalt einer Datei in eine .Net/CLR-string, es ist UTF-16 codiert werden: es hat sich gewandelt von der ursprünglichen Quelle-Codierung. Die CLR verwendet intern in UTF-16—und damit den Grund für eine
char
16 bits.Als Ergebnis die angegebene Kodierung für das Dokument [original] XML-Deklaration ist nun im Widerspruch mit der tatsächlichen Codierung des Dokuments.
Besten zu pass ein
StreamReader
wie empfohlen von @Lloyd vor.InformationsquelleAutor Nicholas Carey
Ich denke, das Beispiel von @Lloyd braucht die
new
Stichwort:InformationsquelleAutor Tom Schulte