Java 8 изменения в декодировании UTF-8

Недавно мы перенесли наше приложение в JDK 8 из JDK 7. После внесения изменений мы столкнулись с проблемой следующего фрагмента кода.

String output = new String(byteArray, "UTF-8");

Массив байтов может содержать недопустимые последовательности байтов UTF-8. Один и тот же байтовый массив при декодировании UTF-8 приводит к двум разностным строкам на Java 7 и Java 8.

Согласноответ к этомуТАК сообщениеJava 8 «исправляет» ошибку в Java 7 и заменяет недопустимые последовательности байтов UTF-8 строкой замены, что соответствует спецификации UTF-8.

Но мы хотели бы придерживаться версии декодированной строки в Java 7.

Мы пытались использовать CharsetDecoder с CodingErrorAction в качестве REPLACE, REPORT и IGNORE на Java 8. Тем не менее, мы не смогли сгенерировать ту же строку, что и Java 7.

Можем ли мы сделать это с помощью техники разумной сложности?

Ответы на вопрос(1)

Ваш ответ на вопрос