C# xml序列化和编码
我希望xml编码为:C# xml序列化和编码,c#,.net,xml-serialization,xmlserializer,C#,.net,Xml Serialization,Xmlserializer,我希望xml编码为: <?xml version="1.0" encoding="windows-1252"?> 但我仍然没有得到我预期的编码我错过了什么?请指导我生成编码,如encoding=“windows-1252”。我需要在代码中更改什么?只要将XML直接输出到a(通过a或a),您将始终获得UTF-8或UTF-16编码。这是因为 为了获得正确的编码,您必须切换到二进制输出,例如 下面是一个简单的例子: var settings = new XmlWriterSettings
<?xml version="1.0" encoding="windows-1252"?>
但我仍然没有得到我预期的编码我错过了什么?请指导我生成编码,如
encoding=“windows-1252”
。我需要在代码中更改什么?只要将XML直接输出到a(通过a或a),您将始终获得UTF-8或UTF-16编码。这是因为
为了获得正确的编码,您必须切换到二进制输出,例如
下面是一个简单的例子:
var settings = new XmlWriterSettings
{
Encoding = Encoding.GetEncoding(1252)
};
using (var buffer = new MemoryStream())
{
using (var writer = XmlWriter.Create(buffer, settings))
{
writer.WriteRaw("<sample></sample>");
}
buffer.Position = 0;
using (var reader = new StreamReader(buffer))
{
Console.WriteLine(reader.ReadToEnd());
Console.Read();
}
}
var设置=新的XmlWriterSettings
{
Encoding=Encoding.GetEncoding(1252)
};
使用(var buffer=new MemoryStream())
{
使用(var writer=XmlWriter.Create(缓冲区、设置))
{
writer.WriteRaw(“”);
}
缓冲器位置=0;
使用(变量读取器=新的流读取器(缓冲区))
{
Console.WriteLine(reader.ReadToEnd());
Console.Read();
}
}
相关资源:
var settings = new XmlWriterSettings
{
Encoding = Encoding.GetEncoding(1252)
};
using (var buffer = new MemoryStream())
{
using (var writer = XmlWriter.Create(buffer, settings))
{
writer.WriteRaw("<sample></sample>");
}
buffer.Position = 0;
using (var reader = new StreamReader(buffer))
{
Console.WriteLine(reader.ReadToEnd());
Console.Read();
}
}