针对ISO-8859-9的java xml解析
我正在尝试将ISO-8859-9的字符串解析为xml。我的代码是:针对ISO-8859-9的java xml解析,java,xml-parsing,Java,Xml Parsing,我正在尝试将ISO-8859-9的字符串解析为xml。我的代码是: private Document stringToXML(String input) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; builder = factory.newDocumentBuilder(); return builder.p
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:”
我怎样才能解决这个问题 如果输入包含UTF-8字符,则它不是ISO-8859-9流。在尝试解析之前,将其解析为UTF-8或将其转换为ISO-8859-9。每个文档只有一个字符集,尝试混合会使整个文档变得毫无意义。您是否检查过ISO-8859-9是否受支持?使用Charset.issuported(“ISO-8859-9”)检查它…XML字符串是否在其声明中指定了字符集?如何以该形式设置字符集?为什么要/需要?字符串总是UTF-16。我试过了,但这次我得到了“[致命错误]:1:1:文件过早结束”。然后听起来你的数据格式不正确(即不是XML)。字符串的来源是什么?我使用inputsource解决了这个问题。此外,我意识到如果字符串为空,parse方法会给出致命错误。无论如何,谢谢你的帮助。你帮了我大忙,我不会混用2套的。Utf-8和ISO-8859-9集合有许多共同字符。