2009-05-06 35 views
0

我想创建一个html附件,通过处理一些xml通过xsl转换并将其发送给客户端。如果我点击“打开”,IE会正确显示html,但是如果我保存附件,然后在Firefox中打开它,那么每个地方都有一个 我收到一个“”字符。我有一种感觉,这与我们的编码有关。下面是相关的代码:从xslt创建html附件,编码问题,asp.net

Response.Clear(); 
    Response.ContentEncoding = Encoding.UTF8; 
    Response.ContentType = "text/html"; 
    Response.Charset = "utf-8"; 
    Response.AddHeader("Content-Disposition", 
     String.Format("attachment; filename={0}; size={1}", filename, rgen.Output.Length)); 
    //Response.Flush(); 
    Response.Write(rgen.Output); 
    Response.Flush(); 
    Response.End(); 

rgen.Output是来自一个stringwriter.tostring(包含转换后的HTML字符串)。

似乎xslt总是将编码设置为UTF-16,但我已将上面的代码更改为utf-16,但它也不起作用。任何想法发生了什么?

谢谢。

+0

这与XSLT无关。它看起来像.NET中的字符串是UTF-16 [检查](http://weblogs.asp.net/rmclaws/archive/2003/07/31/22080.aspx) – 2010-09-10 23:04:25

回答

0

你的XSL doc输出是什么样子的?你在那里设置了什么编码?

<xsl:output encoding="utf-8" omit-xml-declaration="yes" method="html" indent="no" ></xsl:output>