2

代码如下所示:

XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();

        XMLEventWriter eventWriter = outputFactory
                .createXMLEventWriter(new FileOutputStream("output.xml"));

        XMLEventFactory eventFactory = XMLEventFactory.newInstance();
        XMLEvent end = eventFactory.createDTD("\n");
        XMLEvent tab = eventFactory.createDTD("\t");

        StartDocument startDocument = eventFactory.createStartDocument(
                "UTF-8", "1.0");
        eventWriter.add(startDocument);
...

当我打开 xml 文件时,谷歌浏览器在第一个 utf-8 字符处显示“编码错误”,如果我查看 xml 代码,它看起来像:

?xml version="1.0"?

里面没有编码部分...

你有什么想法可能是什么问题?

4

2 回答 2

3

您需要在此处指定编码

.createXMLEventWriter(new FileOutputStream("output.xml"), "UTF-8");

否则它使用平台默认值

于 2013-01-18T15:18:59.783 回答
0

据我了解

XMLEvent end = eventFactory.createDTD("\n");

可能不是你的意思。DTD 是声明实体和标签的文本;非 XML 脚本中的 XML。尝试删除它们。

于 2013-01-18T15:20:15.627 回答