SAX продолжает умирать из-за следующего исключения:
Invalid byte 2 of 3-byte UTF-8 sequence
Проблема в том, что он в основном правильно закодирован в UTF-8, но в нем есть несколько ошибок. Мы не можем получить новую версию файла, мы должны использовать этот файл.
Так как же нам сказать SAX игнорировать недопустимые последовательности символов или очистить файл UTF-8, чтобы в нем не было недопустимых последовательностей UTF-8?
Я хотел бы предложить вам очистить файл как полностью отдельный шаг от разбора его как XML.
UTF-8 - довольно простая для понимания кодировка; эта веб-страница показывает, как должен быть сформирован UTF-8. Я предлагаю вам написать программу, которая читает ваш входной файл и записывает новый файл. Он будет читать байт за байтом, записывая символ только тогда, когда он видит, что он был правильно сформирован. Когда он видит недопустимый байт, он записывает строку «UTF8ERROR» или какой-нибудь другой легко обнаруживаемый токен, который не встречается во входных данных. Тогда остальная часть персонажа будет пропущена.
После этого вы можете проверить, где произошли ошибки, и исправить данные ... затем проанализировать их как обычно.
Таким образом вы увидите, насколько широко распространены ошибки, посмотрите, есть ли в них какой-то шаблон, и, возможно, сможете их исправить. Если вы собираетесь получить больше данных из того же источника, я настоятельно рекомендую вам рассказать им о проблеме ... это может указывать на более серьезную проблему на их стороне.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения