控制出现在 XDocument.Save() 中的字符,但仅对 Unix 可见
本文关键字:字符 可见 Unix XDocument Save 控制 | 更新日期: 2023-09-27 18:36:20
我正在使用保存一个简单的XDocument。
xDoc.Save(result.Filename, SaveOptions.OmitDuplicateNamespaces);
当我们打开文件并在Windows系统(Server2008或Win7)上处理它时,xml是正确的,并且可以在下一个系统中正确处理。
无论如何,当我们移动到生产系统(unix)时,xml无法正确读取。
当我们在 unix 框上vi
生成的文件时,有三个前导控制字符。 正确删除这些进程和 xml 进程。
我在记事本++中看不到这些字符(将文件显示为ANSI/UTF8)。
有没有人知道这些角色是什么,他们是如何到达那里的......以及如何删除它们或阻止它们出现?
您可以省略 Unicode BOM,只需将new UTF8Encoding(false)
传递给 save 方法即可。
像这样的东西(请将其视为伪代码):
using(var writer = new StreamWriter(result.Filename, false, new UTF8Encoding(false))){
xDoc.Save(writer , SaveOptions.OmitDuplicateNamespaces);
}
这是Unicode BOM(字节顺序标记)。
如果它显示在 Linux 中,请获取支持 Unicode 的编辑器/查看器。