但假如只运用xslt来显现xml数据时(data.xml+data.xsl),发明此时的URL会涌现编码毛病.纵然指定编码范例(encoding="gb2312"),依旧会涌现一样的题目.
测试发明:是IE的缓存机制题目,IE仍会把新的页面(所链接的URL)的MIME内容范例默以为text/xml
解决方法:
1.指定输出文档范例为xml文档 (example:data.xsl)
<xsl:output method="xml" encoding="gb2312" media-type="text/xml" />
2.在新的窗口翻开,给连接增添属性,指明目的窗口为其他窗口 (example:data2.xsl)
<xsl:attribute name="target">_blank</xsl:attribute> examples: /*** data.xml ***/ <?xml version="1.0" encoding="gb2312"?> <?xml-stylesheet type="text/xsl" href="data.xsl"?> <root> <search> <url>http://www.google.com/search?q=</url> <Word>xml数据</word> </search> <search> <url>http://www1.baidu.com/baidu?word=</url> <word>xml数据</word> </search> <search> <url>http://www.google.com/search?q=</url> <word>极限编程(xp)</word> </search> <search> <url>http://www1.baidu.com/baidu?word=</url> <word>极限编程(xp)</word> </search> </root> /*** data.xsl ***/ <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 去掉下面一句,将涌现毛病 --> <xsl:output method="xml" encoding="gb2312" media-type="text/xml" /> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="search"> <xsl:element name="a"> <xsl:attribute name="href"><xsl:value-of select="url" /><xsl:value-of select="word" /></xsl:attribute> <xsl:value-of select="word" /> </xsl:element> <br /> </xsl:template> </xsl:stylesheet> /*** data2.xsl ***/ <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="search"> <xsl:element name="a"> <xsl:attribute name="href"><xsl:value-of select="url" /><xsl:value-of select="word" /></xsl:attribute> <!-- 去掉下面一句,将涌现毛病 --> <xsl:attribute name="target">_blank</xsl:attribute> <xsl:value-of select="word" /> </xsl:element> <br /> </xsl:template> </xsl:stylesheet>
以上就是细致剖析包括中文字符的URL编码题目的内容,更多相关内容请关注ki4网(www.ki4.cn)!