Код работает нормально.
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. Проверьте это.