首页 > 编程语言 >C# 反序列化乱码

C# 反序列化乱码

时间:2023-08-02 11:22:28浏览次数:35  
标签:文件 编码 C# 乱码 FileStream 序列化 StreamReader

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

 

xml文件为日文编码

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

 

 

 

解决方案:

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

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

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

标签:文件,编码,C#,乱码,FileStream,序列化,StreamReader
From: https://www.cnblogs.com/wuguoqiang/p/17600112.html

相关文章

  • FPGA学习笔记 Label: Research
    [Synth8-9486]formalport'addr'hasnoactualordefaultvalue[D:/FPGA/TEST_CARD_HIT/top.vhd:492]有端口没有连接,在top文件中把端口加上 [Opt31-67]Problem:ALUT2cellinthedesignismissingaconnectiononinputpinI1,whichisusedbytheLUTequat......
  • 使用python写ros publisher和subscriber
    publisher#!/usr/bin/envpython#licenseremovedforbrevityimportrospyfromstd_msgs.msgimportStringdeftalker():pub=rospy.Publisher('chatter',String,queue_size=10)rospy.init_node('talker',anonymous=True)ra......
  • tomcat环境部署verto客户端
    tomcat环境下部署verto客户端1.generateaself-signedcertificateforTomcatusingOpenSSLStep1:Generateaprivatekeyopensslgenpkey-algorithmRSA-outprivate.keyStep2:Createacertificatesigningrequest(CSR)opensslreq-new-keyprivate.key-......
  • java 查看class文件的jdk版本的两种方式(编译版本)
    1.情景展示有时候我们需要知道jar包里面class文件的jdk编译版本,来排查错误。以上图为例,如何实现?2.具体分析将其中一个class文件解压出来,然后查看大致的jdk版本号。3.解决方案使用解压工具打开gridreport.jar,将Report.class解压到桌面。方式一:使用文本编辑工具EditPlus......
  • 序列化-Serializable
    Serializable是Java中的一个接口,用于标识类的实例可以被序列化。序列化是将对象的状态转换为字节流的过程,可以将对象写入文件、传输到网络或存储在内存中。被序列化的对象可以在不同的Java虚拟机之间进行传输或保存,也可以在同一个虚拟机的不同时间点进行持久化存储和恢复。......
  • vite 项目webstorm跳转失效 VSCode、vue 无法对 @ 路径 跳转 ,几乎适用于所有webpack、
    在根目录加一个jsconfig.json文件{"compilerOptions":{"baseUrl":".","paths":{"@/*":["src/*"]},"target":"ES6","allowSyntheticDefaultImports&q......
  • vue 通过css 给html元素增加前缀红色星号
    <el-form-item>前面增加红色星号要为<el-form-item>的label增加红色星号,你可以使用CSS中的伪元素::after或::before来实现。下面是如何在样式中添加红色星号的示例:<el-form-itemclass="red-label"label="物流商信息"></el-form-item><stylescopedlang="scss"......
  • Idea:新版本Idea底部工具栏Git中没有Local Changes
    在设置中,VersionControl——Commit中,将选中勾选取消即可,如下图:点击Git图标,LocalChanges已显示出来。 ......
  • 让nlohmann json支持std::wstring和嵌套结构的序列化与反序列化
    nlohmannjson是一个star很高的C++json解析库。要让nlohmannjson支持某个类型T,只要给这个类型T实现一个偏特化的structadl_serializer<T>即可。adl_serializer是这个库里面针对泛型T预定义的适配器。而嵌套结构,本身就支持的。使用预定义的宏NLOHMANN_DEFINE_TYPE_NON_INTRUSI......
  • Docker使用理解
    1.轻量级的虚拟机,可以像房间一样隔离每个应用,安装依赖一条命令。  保证同样的运行环境,解决每个计算机运行情况不同的问题。2.镜像是一个发布包,可以发布多个运行实例供用户访问。3.可以将镜像 dockersave 为压缩包给其他人用  命令:dockersave-o./ywtest.tarywtes......