C# 反序列化乱码

发布时间 2023-08-02 11:20:09作者: wu.g.q

从文件反序列化到对象时,发生乱码,基本就是文件中的编码与流转到对象时的编码不一致,如以下情况:

 

xml文件为日文编码

反序列化函数Deserialize的参数为StreamReader,而StreamReader的编码与文件编码不一致,这样就会出现乱码

 

 

 

解决方案:

1.构造StreamReader对象的时候与文件编码保持一致

2.用FileStream fsRead = File.OpenRead(fileName), 用File.OpenRead返回的文件流对象去反序列化

(FileStream 操作的是字节, StreamReader为字符,所以StreamReader须指定编码)