java - 如何将 StAX 解析器与元音变音 (äÜÖ) 一起使用?

标签 java xml unicode encoding stax

我正在使用 StreamReaderDelegate 并且想要使用元音变音 (äÜÖ)。

我对 StAX 解析器的初始化:

public class GraphDataStreamReader extends StreamReaderDelegate {
  public GraphDataStreamReader(XMLStreamReader streamReader) throws XMLStreamException {
    super(streamReader);
  }
  ...
}

...

XMLInputFactory factory = XMLInputFactory.newInstance();
graphSR = new GraphDataStreamReader(
            factory.createXMLStreamReader(new FileReader(xmlFile)));
  • 在 XML 文件中:Grenzübergang Mesenich LU->DE
  • 输出 getAttributeValue(x):Grenzübergang Mesenich LU->DE

我的 XML 文件标记为 UTF-8(也尝试过 16、32)。

我能做什么?

最佳答案

FileReader 使用平台的默认字符编码,如果您的 XML 文件使用不同的编码,则会损坏文件内容。

改用FileInputStream:

factory.createXMLStreamReader(new FileInputStream(xmlFile))

关于java - 如何将 StAX 解析器与元音变音 (äÜÖ) 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370024/

相关文章:

java - IntelliJ - 为什么终端有不同的环境变量值

java - 在 android studio 中获取 android 4.0 中的位置时出现问题

android - 如何实现 PIN 码屏幕

android - 如何在我的 Android 应用程序中显示我刚从相机拍摄的图像?

c++ - 对 UTF-8 字符串进行排序?

c# - 如何在复杂的脚本中获取上下文形状输入的字符?

java - 确定矩形的哪一侧被击中

android - 为什么要创建 .out.xml 文件?

Python Nltk :UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 50: invalid continuation byte

java - 如何在 FTP 文件传输过程中找到我的文件位置