Как преобразовать UTF-16 в ISO / IEC 8859-1 Latin в Java с адекватной заменой специальных букв? - PullRequest
0 голосов
/ 24 сентября 2018

Мне нужно преобразовать строки Java в ISO / IEC 8859-1, чтобы сэкономить место / чтобы каждый символ использовал 1 байт.

Однако при использовании

getBytes(StandardCharsets.ISO_8859_1)

некоторые символыкак š и ž позже печатаются как ?.Они не являются частью ISO / IEC 8859-1, но я хотел бы иметь автоматический способ адекватной замены этих букв, таких как: š-->s, ž-->z, для каждой буквы UTF-16, которая не является частью ISO /МЭК 8859-1.

Возможна ли такая вещь?

РЕДАКТИРОВАТЬ: Я использовал решение Эрика Робертсона.

https://stackoverflow.com/a/3322174/10197944

1 Ответ

0 голосов
/ 24 сентября 2018

Существует метод String.replaceAll (), однако, если вы хотите сохранить довольно точный контроль над тем, какие токены заменяются другими, то вам потребуется составить точный список и кодировать все вызовы.«Для каждого токена UTF-16, который не является частью ...», это будет трудно сделать ... (и на вершине может потребоваться слишком громоздкое время для запуска).

УниверсальныйМетод замены строк "сделай замену, которую я случайно имел в виду" не был подготовлен для тебя, увы.

...