我有一个自定义xml序列化程序,它可以序列化类型,方法签名是:
string result = CustomXmlSerializer.Serialize(someObject);
序列化的结果我希望它在网页中可用:
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=\"somefilename.xml\"");
Response.BufferOutput = true;
Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "text/xml; encoding=utf-8";
string content= CustomXmlSerialize.Serialize(someObject);
byte[] utf8Bytes = Encoding.UTF8.GetBytes(content);
Response.OutputStream.Write(utf8Bytes, 0, utf8Bytes.Length);
Response.End();
但是生成的xml仍然是字符串内存编码(utf-16)?怎么可能?我正在写HttpResponse
一个字节数组,编码为utf-8?
答案 0 :(得分:0)
要求您的CustomXmlSerializer
在标头中发出正确的编码属性。将结果转换为字节时,它无法知道您使用的编码。