我有一个正确定义的类,在将其序列化为 XML 后我没有得到任何编码。
如何定义编码“ISO-8859-1”?
这是一个示例代码
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>
最佳答案
以下应该有效:
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
(它们更容易被识别)并摆脱它。
关于c# - 指定编码 XmlSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20997062/