我有一个DataTable,我正在使用.Write
XML(..)创建一个
XML文件,虽然我有一个问题,它导出UTF-16编码,似乎没有明显的方法来改变它.我知道.NET在字符串内部使用UTF-16,这是正确的吗?
然后我运行DataTable.WriteXML()通过XSLT生成的XML,该XSLT在输出声明中包含以下内容:
<xsl:output method="xml" indent="yes" encoding="utf-8" />
但是,转换的输出仍然是UTF16,而我尝试输入此XML文件的系统不支持UTF16.
有没有办法强制输出为UTF-8?
解决方法
结果文档的编码由< xsl:output>的编码属性确定.指令 – 而不是包含XSLT转换的XML文档的XML声明.
这是一个例子:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output encoding="utf-8"/> <xsl:template match="/"> <t>Hello,world!</t> </xsl:template> </xsl:stylesheet>
当应用于任何XML文档(未在此简单演示中使用)时,生成所需的结果:
<?xml version="1.0" encoding="utf-8"?><t>Hello,world!</t>
请注意:在.NET中,您可能需要将作为参数传递的XmlWriter的特定设置指定给xslcompiledtransform.Transform()方法.有关如何在XmlWriterSettings类中指定所需编码的详细信息,请参阅this.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。