java中的xml utf-8编码错误

时间:2013-01-18 15:09:19

标签: java xml encoding utf-8

代码如下所示:

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"?

其中没有编码部分......

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

2 个答案:

答案 0 :(得分:3)

您需要在此处指定编码

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

否则它使用平台默认

答案 1 :(得分:0)

据我所知

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

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