我有问题,当XML文件中有UTF-8字符时,我的DOM解析器无法加载文件 现在,我知道我必须给他指令读取utf-8,但我不知道怎么把它放在我的代码中 这是:
File xmlFile = new File(fileName);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
我知道有方法setencoding(),但我不知道把它放在我的代码中...
答案 0 :(得分:15)
试试这个。为我工作
InputStream inputStream= new FileInputStream(completeFileName);
Reader reader = new InputStreamReader(inputStream,"UTF-8");
InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
答案 1 :(得分:5)
尝试使用Reader并提供编码作为参数:
InputStream inputStream = new FileInputStream(fileName);
documentBuilder.parse(new InputSource(new InputStreamReader(inputStream, "UTF-8")));
答案 2 :(得分:-2)
我使用了尤金在那里所做的改变了一点。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
FileInputStream in = new FileInputStream(new File("XML.xml"));
Document doc = dBuilder.parse(in, "UTF-8");
虽然如果您在eclipse控制台中打印,它将被视为UTF-8
,但它不会显示任何' UTF-8'字符除非java文件保存为' UTF-8',或者至少是我发生的事情