我正在使用
保存一个简单的XDocument xDoc.Save(result.Filename, SaveOptions.OmitDuplicateNamespaces);
当我们打开文件并在Windows系统(Server2008或Win7)上处理它时,xml是正确的,并在下一个系统中正确处理。
然而,当我们转移到我们的生产系统(unix)时,xml无法正确读取。
当我们vi
unix框上的结果文件时,有三个主要控制字符。正确删除这些和xml进程。
我在Notepad ++中看不到这些字符(将文件显示为ANSI / UTF8)。
有没有人知道这些角色是什么,他们如何到达那里......以及如何删除它们或阻止它们出现?
答案 0 :(得分:2)
您可以省略Unicode BOM,只需将new UTF8Encoding(false)
传递给保存方法。
这样的事情(请将其视为伪代码):
using(var writer = new StreamWriter(result.Filename, false, new UTF8Encoding(false))){
xDoc.Save(writer , SaveOptions.OmitDuplicateNamespaces);
}
答案 1 :(得分:1)
这是Unicode BOM(字节顺序标记)。
如果它在Linux中显示,请获取支持Unicode的编辑器/查看器。