【发布时间】:2015-08-10 17:40:49
【问题描述】:
我找了很多地方都找不到答案。
我正在使用 XmlSerializer 生成 XML,我需要它采用 ISO-8859-1 编码。我设法做到了:
var encoding = Encoding.GetEncoding("ISO-8859-1");
using (StreamWriter writer = new StreamWriter(outfile, appendMode, encoding))
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
serializer.Serialize(writer, DTE, ns);
writer.Close();
}
xml 没问题,但是我需要将 XML 发送到的系统在编码字中是区分大小写的,所以它只接受我的文件,它说 encoding="ISO-8859-1" 而没有当它说“iso-8859-1”时。
我能做什么?提前谢谢你。
【问题讨论】:
-
除此之外,你有没有通知对方他们有点坏了?来自 XML 规范:“XML 处理器应该以不区分大小写的方式匹配字符编码名称”
-
您可能需要过滤序列化程序的输出
-
看起来 XML 序列化程序正在使用
Encoding.WebName。您可以编写一个Encoding实现,它将所有方法委托给真正的方法,但提供自己的WebName... -
您可以手动完成。看看 SO [1] 中的 How to Answer[1]:stackoverflow.com/questions/16706931/…
-
好的,过了一会儿我在这里找到了答案stackoverflow.com/questions/398621/…
标签: c# encoding iso-8859-1