我在处理编码问题。
一方面,我有一个URL以UTF-8响应(通过Firebug插件,我非常确定)。
使用以下代码打开URL并以UTF-8读取内容:
StreamReader reader = new StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8);
另外,我有一个包含以下代码的XSLT转换样式表:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<br/>
hello
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这个xslt文件也是以UTF-8格式保存的。
我使用以下代码将xml和xslt混合:
StringWriter writer = new StringWriter();
XslCompiledTransform transformer = new XslCompiledTransform();
transformer.Load(HttpContext.Current.Server.MapPath("xslt\\xsltsheet.xslt");
XmlWriterSettings xmlsettings = new XmlWriterSettings();
xmlsettings.Encoding = System.Text.Encoding.UTF8;
transformer.Transform(xmlreader, null, writer);
return writer;
然后在网页浏览器中渲染该作者的内容后,我遇到了以下错误:
我想知道在哪些地方考虑到了UTF-16编码,因为:The XML page cannot be displayed Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
Switch from current encoding to specified encoding not supported. Error processing resource 'http://localhost:2541/Results....
<?xml version="1.0" encoding="utf-16"?>
- 我的所有文件都保存为UTF-8
- 服务器的响应是UTF-8
- 读取xslt表格的方式已配置为UTF-8。
提前致谢。
最好的问候。
何塞。