Один из наших провайдеров иногда отправляет XML-каналы, помеченные как документы в кодировке UTF-8, но содержащие символы, не входящие в кодировку UTF-8. Это заставляет синтаксический анализатор генерировать исключение и прекращать построение объекта DOM, когда встречаются эти символы:
DocumentBuilder.parse(ByteArrayInputStream bais)
выдает следующее исключение:
org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.
Есть ли способ «зафиксировать» эти проблемы на раннем этапе и избежать исключения (т.е. найти и удалить эти символы из потока)? То, что я ищу, - это резервный вариант «наилучшего из возможных» для неправильно закодированных документов. Правильным решением, очевидно, было бы атаковать источник проблемы и удостовериться, что доставляются только правильные документы, но что является хорошим подходом, когда это невозможно?