getXmlEncoding()提供错误的输出

时间:2019-07-03 09:53:31

标签: java xml dom encoding

我想使用Java来获取XML文件的编码样式:

wx + b

使用以下Java代码:

<?xml version="1.0" encoding="UTF-8"?> 
<company>
	<staff>
		<firstname>yong</firstname>
		<lastname>mook kim</lastname>
		<nickname>ä</nickname>
		<salary>100000</salary>
	</staff>
</company>

和我得到的输出是: XmlEncoding:ISO-8859-1 输入编码:UTF-8 而且我真的不知道为什么在XML标头中有UTF-8的情况下为什么会得到ISO-8859-1?

1 个答案:

答案 0 :(得分:0)

代码运行正常。

Xml文件:new.xml

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <staff>
        <firstname>yong</firstname>
        <lastname>mook kim</lastname>
        <nickname>ä</nickname>
        <salary>100000</salary>
    </staff>
</company>

这是代码:

 public class XmlToJava {

    public static void main(String[] args)  {
        try {
            File file = new File("C:\\new.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(file);
            doc.getDocumentElement().normalize();
            System.out.println("XmlEncoding: " + doc.getXmlEncoding());
            System.out.println("InputEncoding: " + doc.getInputEncoding());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

输出(Eclipse IDE):

XmlEncoding: UTF-8
InputEncoding: UTF-8

但是我猜测您的IDE可能会遵循一些不同的编码标准。检查一下。