Похоже, что клиент отправляет текст, который должен быть закодирован как UTF8, но не кодирует его.
Чтобы правильно диагностировать эту проблему, вам нужно понять UTF8 (что вы могли бы сделать, Я не знаю)
В UTF8 любой символ с кодировкой 127 (0x7F) или меньше - т.е. используется только самый младший 7 бит - включен в поток как есть (без специальной кодировки).Но все, что больше 127 (т. Е. Установлен по крайней мере один бит выше, чем 7-й), специально закодировано.
0xF6
больше 0x7F
, поэтому, если клиент хочет отправить этот символ, он должензакодировал это.
0xF6
в двоичном виде - 11110110
, который в UTF8 должен быть 11000011 10110110
(C3 B6
)
Итак, если клиент хочет отправить символ ISO8859-1 0xF6, тогда он должен посылать последовательность байтов UTF8 0xC3 0xB6.
Вам действительно нужно выяснить, что клиент хочет отправлять, в какую кодировку / кодировку эти данные и почему он не преобразует их вдействительный UTF8 перед отправкой.
(«состояние 3», это связано с внутренними таблицами Jetty для выполнения декодирования UTF8, на самом деле это не очень полезно для диагностики этой проблемы. Это пригодится только в случае необходимости).если вы найдете клиента, и похоже, что клиент поступает правильно, и вы подозреваете, что декодирование Jetty UTF8 неверно)