【发布时间】:2019-07-04 09:15:28
【问题描述】:
我正在使用此代码来存储我的课程:
FileStream stream = new FileStream(myPath, FileMode.Create);
XmlSerializer serializer = new XmlSerializer(typeof(myClass));
serializer.Serialize(stream, myClass);
stream.Close();
这会写入一个我可以使用XmlSerializer.Deserialize 正常读取的文件。但是,生成的文件不是正确的文本文件。 XmlSerializer.Serialize 不存储 BOM,但仍插入多字节字符。因此它被隐式声明为 ANSI 文件(因为我们期望 XML 文件是文本文件,而没有 BOM 的文本文件被 Windows 视为 ANSI),在某些编辑器中将 ö 显示为 ö。
这是一个已知的错误吗?还是我缺少的一些设置?
生成的文件开头如下:
<?xml version="1.0"?>
<SvnProjects xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
文件中的第一个字节是十六进制 3C,即<。
【问题讨论】:
标签: c# xmlserializer