`XMLStreamReader.getEncoding()` 到底是做什么的?

What exactly does `XMLStreamReader.getEncoding()` do?

XMLStreamReadergetCharacterEncodingScheme() return 是 <?xml encoding="utf-8"> 行的 encoding 属性。但是如果getCharacterEncodingScheme()就够了,那为什么还有getEncoding()? XMLStreamReader.getEncoding()到底是做什么的?

javadoc 几乎什么都没说。

javax\xml\stream\XMLStreamReader.java

  /**
   * Return input encoding if known or null if unknown.
   * @return the encoding of this instance or null
   */
  public String getEncoding();

getEncoding() 的用途是什么,它与 getCharacterEncodingScheme() 有何不同,getEncoding() 的 return 值是如何根据输入 XML?

创建 XMLStreamReader 的方法有很多种。其中一种方法将编码名称作为参数......而不是从输入 XML 的显式 encoding 属性中获取它。

所以 getEncoding() 的目的是 return 正在使用的实际编码(如果已知)......与 <xml> 中声明的编码不同元素.

注意:XMLStreamReader可能不知道读取XML时使用的编码。例如,当 XMLStreamReaderReader 实例化时, reader 使用的解码器无法通过 Reader API.[=18= 确定]