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 に変換してください。ドキュメントごとに 1 つの文字セットしか得られないため、混在させようとすると、すべてが無意味になります。

于 2013-05-20T20:43:09.137 に答える