java - 在 Java StAX 解析器中编码

标签 java xml encoding stax

我正在使用 StAX 读取 XML 文件,但遇到了像 žćčšđ 这样的字符的问题。 代码几乎与 SAX 中的相同,但我没有遇到那种问题。

这是xml文件的一部分

<?xml version = "1.0" encoding="UTF-8" ?>      
<Autor>
        <Id>1</Id>
        <Meno>Jano Žiška</Meno>
        <Email>dfdsfsfdsdf@gmail.com</Email>
        <tel_cislo typ="mobil">0944564685</tel_cislo>  
        <plat>500</plat>
      </Autor>

Java

        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 ));

关于java - 在 Java StAX 解析器中编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222202/

相关文章:

c++ - C++ 中 ü 的 ASCii 值

java - 如何使用 Java 8 Stream 实现 Stack Iteration

java - 如何创建 "or"语句

java - 在 Java 中实现通用 switch 语句

xml - 使用 XSLT 转换特定 XML 文档

python - 合并具有相似父节点的子节点,xml,python

python - 如何避免一直将字节解码为字符串?

python - 我的移动网络对编码有何影响?

java - XML 架构验证问题

java - 我应该在哪里初始化我的开关小部件 Android