Чаще всего это происходит из-за кормления ISO-8859-x
(Latin-x, как Latin-1), но анализатор думает, что он получает UTF-8
. Определенные последовательности символов латинского алфавита-1 (два последовательных символа с ударением или умляутами) образуют что-то, что недопустимо как UTF-8
, и, в частности, такое, что на основе первого байта второй байт имеет неожиданные старшие биты.
Это может легко произойти, когда какой-то процесс выгружает XML
с использованием Latin-1, но либо забывает вывести объявление XML
(в этом случае парсер XML
должен по умолчанию установить UTF-8
, согласно XML
спецификациям) ) или утверждает, что это UTF-8
, даже если это не так.