bou*_*ekv 2 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);
Run Code Online (Sandbox Code Playgroud)
但是,这在我的系统中的结果是:
<?xml version="1.0" encoding="utf-16"?><root />
Run Code Online (Sandbox Code Playgroud)
将编码强制为UTF-8的正确方法是什么?
文档未提供示例:https : //docs.microsoft.com/zh-cn/previous-versions/dynamics/ax-2012/system-classes/gg929065(v%3dax.60)
小智 7
如果您要写入字符串,则编码将被UTF-16覆盖。字符串始终是Unicode,即UTF-16。无法使用writeToStringmethod 编写任何其他编码。如果写入文件,则编码将生效。
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |