は、私はすでにたくさんとを探索し解決策を見つけることができないと私はXML文字列にオブジェクトをシリアライズし、C#を使用してオブジェクトに戻って、それをデシリアライズしていますXMLデシリアライズエンコードの問題
正しいアプローチに決定することができません。シリアル化の後のXML文字列は先頭に?を追加します。私はエラーを取得していますオブジェクトに戻ってdezerializeすると、XML文書に誤りがあります(1、1)
?<?xml version="1.0" encoding="utf-16"?>
シリアルコード:
string xmlString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(T));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("abc", "http://example.com/abc/");
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream,Encoding.Unicode);
xs.Serialize(xmlTextWriter, obj, ns);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlString = ConvertByteArrayToString(memoryStream.ToArray());
ConvertByteArrayToString:
UnicodeEncoding encoding = new UnicodeEncoding();
string constructedString = encoding.GetString(characters);
直列化復元コード:
XmlSerializer ser = new XmlSerializer(typeof(T));
StringReader stringReader = new StringReader(xml);
XmlTextReader xmlReader = new XmlTextReader(stringReader);
object obj = ser.Deserialize(xmlReader);
xmlReader.Close();
stringReader.Close();
return (T)obj;
私がエンコーディングに間違っていることを知りたいのですが、ほとんどの場合に有効な解決策が必要です。おかげ