Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
针对ISO-8859-9的java xml解析_Java_Xml Parsing - Fatal编程技术网

针对ISO-8859-9的java 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

我正在尝试将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:”
我怎样才能解决这个问题

如果输入包含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集合有许多共同字符。