我有一个 DataTable,我正在使用 .WriteXML(..) 创建一个 XML 文件,尽管我在以 UTF-16 编码导出它时遇到问题,并且似乎没有明显的方法来更改它。我了解 .NET 在字符串内部使用 UTF-16,这是正确的吗?
然后,我通过 XSLT 运行 DataTable.WriteXML() 生成的 XML,该 XSLT 在输出声明中包含以下内容:
<xsl:output method="xml" indent="yes" encoding="utf-8" />
但转换的输出仍然是 UTF 16,而我尝试输入此 XML 文件的系统不支持 UTF 16。
有没有办法强制输出为UTF-8?
结果文档的编码由以下因素决定encoding
的属性<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>
Do note:在 .NET 中,您可能需要指定作为参数传递给的 XmlWriter 的特定设置XslCompiledTransform.Transform()
方法。看this http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.encoding.aspx有关详细信息,请参阅如何在XmlWriterSettings
class.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)