0

我正在尝试将字符串解析为 ISO-8859-9 的 xml。我的代码是:

private Document stringToXML(String input)
{
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder;
  builder = factory.newDocumentBuilder();           
  return builder.parse(new ByteArrayInputStream(input.getBytes("ISO-8859-9")));     
}

如果输入仅包含 utf-8 字符,则代码运行正确,但输入包含任何特殊字符,例如 'ğ' 它会抛出“com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:” 我该如何解决这个问题?

4

2 回答 2

1

通过InputSource解析StringReader。_

于 2013-05-20T20:39:10.217 回答
1

如果输入包含 UTF-8 字符,则它不是 ISO-8859-9 流。在尝试解析之前将其解析为 UTF-8 或将其转换为 ISO-8859-9。每个文档只能获得一个字符集,尝试混合会使整个事情变得毫无意义。

于 2013-05-20T20:43:09.137 回答