2012-02-08 87 views
2

我有一个自定义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)?这怎么可能?我正在给编码为utf-8的字节数组写入HttpResponse

+1

也许你应该添加xml到你的标签 – 2012-02-08 13:23:27

+0

生成的文件是正确的,但它有<?xml version =“1.0”encoding =“utf-16”?>它应该是<编码=“utf-8” > – Elena 2012-02-08 13:26:07

回答

0

请求您的CustomXmlSerializer在标头中发出正确的编码属性。当你将结果转换为字节时,它不知道你使用什么编码。