以UTF8而不是UTF16输出DataTable XML
我有一个DataTable,我正在使用.WriteXML(..)创建一个XML文件,虽然我有一个问题,它导出UTF-16编码,似乎没有明显的方法来改变它。 我知道.NET在字符串内部使用UTF-16,这是正确的吗?
然后我运行DataTable.WriteXML()通过XSLT生成的XML,该XSLT在输出声明中包含以下内容:
但是,转换的输出仍然是UTF16,而我尝试输入此XML文件的系统不支持UTF16。
有没有办法强制输出到UTF-8?
结果文档的encoding
由
指令的encoding
属性决定 – 而不是由包含XSLT转换的XML文档的XML声明决定。
这是一个例子:
Hello, world!
当应用于任何XML文档(未在此简单演示中使用)时,生成所需的结果 :
Hello, world!
请注意 :在.NET中,您可能需要将作为参数传递的XmlWriter的特定设置指定给XslCompiledTransform.Transform()
方法。 有关如何在XmlWriterSettings
类中指定所需编码的详细信息,请参阅XmlWriterSettings
。