xml - 如何强制将 XML 编码为 UTF-8?

标签 xml encoding axapta dynamics-ax-2012-r3

我正在尝试通过以下方式在我正在构建的 xml 中强制执行编码:

XmlWriterSettings       xmlSetting = new XmlWriterSettings();
XmlWriter               xmlWriter;
Str                     res;


xmlSetting.encoding ('UTF-8');
xmlWriter = XmlWriter::newXml(xmlSetting);    
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement('root');
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
xmlWriter.flush();
res = xmlWriter.writeToString();    
info(res);

但是在我的系统中这样做的结果是:

<?xml version="1.0" encoding="utf-16"?><root />

强制编码为 UTF-8 的正确方法是什么,是否可行

文档不提供示例: https://learn.microsoft.com/en-us/previous-versions/dynamics/ax-2012/system-classes/gg929065(v%3dax.60)

最佳答案

如果您正在写入字符串,则编码将被 UTF-16 覆盖。 字符串始终是 Unicode,即 UTF-16。无法使用 writeToString 方法编写任何其他编码。 如果您写入文件,那么您的编码将生效。

XmlWriterSettings       xmlSetting = new XmlWriterSettings();
XmlWriter               xmlWriter;
Str                     res;


xmlSetting.encoding ('UTF-8');

xmlWriter = XMLWriter::newFile(@"C:\TEMP\test.xml", xmlSetting);    
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement('root');
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
xmlWriter.flush();

enter image description here

关于xml - 如何强制将 XML 编码为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55018827/

相关文章:

xml - 使用 xQuery 更改内存中的 XML 值

java - 如何使用 Spring/Roo 为 POST 编码特殊字符

Javadoc 错误 : unmappable character for encoding ASCII

dynamics-ax-2009 - 表=表与表.数据(表)

sql - 程序性能。 SQL Server、Dynamics AX 2012 R3 CU10

php - 使用 SimpleXml 在 PHP 中访问 XML 的第 n 个元素

java - 缩放 ImageView 的最佳方式

axapta - 如何在服务器端仅根据年份和周数计算周开始日期?

java - 基于 Java 服务器的 Web 应用程序中的 HTTP 状态代码

Java - 为什么我的 AES 程序不加密/解密双引号?