我正在尝试通过以下方式在我正在构建的 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 的正确方法是什么,是否可行
最佳答案
如果您正在写入字符串,则编码将被 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();
关于xml - 如何强制将 XML 编码为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55018827/