12

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() があることは知っていますが、コードのどこに配置すればよいかわかりません...

4

3 に答える 3

31

これを試して。私のために働いた

        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);
于 2014-10-09T13:55:23.510 に答える
-3

ユージーンがそこでやったのを使って、少し変えました。

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ますが、Javaファイルが「UTF-8」として保存されていない限り、または少なくとも私に何が起こったのかを除いて、「UTF-8」文字は表示されません

于 2014-07-18T00:13:50.400 に答える