c# - 对象的二进制序列化到具有特定 unicode 的文件
问题描述
我正在尝试序列化/反序列化一个对象。序列化运行良好,但反序列化不起作用。似乎这是一个 unicode 问题:有一个System.Text.DecoderFallbackException异常表示存在 Unicode 问题(法语到英语翻译):
Can not translate [FF] bytes to index 31 from the code page specified in Unicode.
我在关于该主题的deadlydog答案中使用了二进制序列化的两个函数。
问题是,如何在这段代码中指定反序列化和序列化的 Unicode?
编辑 :
最后我正在使用protobuf-net,这是我的功能:
public static void WriteToBinaryFile<T>(string filePath, T objectToWrite, bool append = false)
{
using (var file = File.Open(filePath, append ? FileMode.Append : FileMode.Create))
{
Serializer.Serialize<T>(file, objectToWrite);
}
}
public static T ReadFromBinaryFile<T>(string filePath)
{
using (var file = File.Open(filePath, FileMode.Open))
{
return Serializer.Deserialize<T>(file);
}
}
但是当我反序列化时出现错误:源数据中的无效字段:0
解决方案
推荐阅读
- vba - 在 VBA Excel 中使用宏应用图片样式
- postgresql - Spring数据本机查询不允许Postgres jsonb字符串存在运算符(问号)
- html - html中的正则表达式模式验证失败
- amazon-web-services - AWS EMR:是否可以重复使用已终止的集群?
- redis - 如何在 redis 中获得与 GEORADIUS 匹配的所有结果?
- shell - 在服务器重新启动时更改文件的内容
- vue.js - 如何在 v-if Vue.js 中添加类
- javascript - 谷歌图表:如何更改注释图表中负值的颜色
- angular - Ionic3-如何在离子中设置下一个/上一个按钮功能
- python-3.x - 数据框对列进行排序并删除重复值