C# 指定编码XmlSerializer
我已经正确定义了一个类,在将它序列化为XML之后,我没有得到任何编码 如何定义编码“ISO-8859-1” 下面是一个示例代码C# 指定编码XmlSerializer,c#,xml,c#-4.0,export-to-xml,C#,Xml,C# 4.0,Export To Xml,我已经正确定义了一个类,在将它序列化为XML之后,我没有得到任何编码 如何定义编码“ISO-8859-1” 下面是一个示例代码 var xml = new XmlSerializer(typeof(Transacao)); var file = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml"),FileMode.OpenOrCreate); xml.Ser
var xml = new XmlSerializer(typeof(Transacao));
var file = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml"),FileMode.OpenOrCreate);
xml.Serialize(file, transacao);
file.Close();
下面是生成xml的开始
<?xml version="1.0"?>
<requisicao-transacao xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dados-ec>
<numero>1048664497</numero>
1048664497
使用所需编码创建StreamWriter:
System.Text.Encoding code = *WhateverYouWant*
StreamWriter sw = new StreamWriter(file, code);
以下方面应起作用:
var xml = new XmlSerializer(typeof(Transacao));
var fname = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml");
var appendMode = false;
var encoding = Encoding.GetEncoding("ISO-8859-1");
using(StreamWriter sw = new StreamWriter(fname, appendMode, encoding))
{
xml.Serialize(sw, transacao);
}
如果您不介意我问一下,为什么您特别需要ISO-8859-1
编码?您可能可以使用UTF-8
或UTF-16
(它们更容易识别)并侥幸逃脱。可能是重复的:但我不确定8859-1编码