Попробуйте использовать FileStream
вместо StreamReader
. XmlSerializer
внутренне создаст XmlTextReader
, который обнаружит кодировку.
var serializer = new XmlSerializer(typeof(Document));
using (var fs = new FileStream(current_file, FileMode.Open))
{
var i = (Document)serializer.Deserialize(fs);
}
Чтобы проверить, какая кодировка используется:
Element el1;
Encoding enc1;
using (var fs = new FileStream("Text1252.xml", FileMode.Open))
using (var reader = new XmlTextReader(fs))
{
reader.MoveToContent();
enc1 = reader.Encoding;
el1 = (Element)serializer.Deserialize(reader);
}