我正在使用StAX读取XML文件,但是žćčšđ之类的字符有问题。
该代码几乎与SAX中的代码相同,但我对此没有这种问题。

这是xml文档的一部分

<?xml version = "1.0" encoding="UTF-8" ?>
<Autor>
        <Id>1</Id>
        <Meno>Jano Žiška</Meno>
        <Email>[email protected]</Email>
        <tel_cislo typ="mobil">0944564685</tel_cislo>
        <plat>500</plat>
      </Autor>


爪哇

        public static void main(String[] args) {
            try {
              XMLInputFactory f = XMLInputFactory.newInstance();
              XMLStreamReader r = f.createXMLStreamReader(new FileReader(SUBOR));
            }
....
          if (r.getLocalName().equals(ELEMENT_MENO) == true) {
            String v = r.getElementText();
             System.out.println("meno:\t\t\t " + v);
          }


如何在Java中指定编码?
谢谢

最佳答案

除非有充分的理由,否则应始终将二进制流与XML(InputStream / OutputStream)一起使用,而不是字符流(Reader / Writer)。使用字符流可能会损坏xml(如OP的原始代码所示)。

XMLStreamReader r = f.createXMLStreamReader(new FileInputStream( SUBOR ));

09-15 16:58