Как перевести символы Юникода в вариант ISO-8859-15/Latin9?JAVA

Программисты JAVA общаются здесь
Anonymous
Как перевести символы Юникода в вариант ISO-8859-15/Latin9?

Сообщение Anonymous »

У меня есть JSON UTF-8, который содержит экранированные символы Юникода. Например:

Код: Выделить всё

{
"description": "This is an ellipsis: \u2026"
}
JSON анализируется с помощью Джексона. На более позднем этапе строки преобразуются в байты для платформы ISO-8859-15/Latin9:

Код: Выделить всё

final byte[] d = description.getBytes(Charset.forName("ISO-8859-15"));
Очевидно, что символ многоточия (…) не входит в набор символов ISO-8859-15/Latin9 (см. https://www.charset.org/charsets/iso-8859- 15).
Я ищу способ преобразования неподдерживаемых символов Юникода в разумный символ или набор символов, поддерживаемый ISO-8859-15/Latin9. Здесь я ожидал бы три точки.
Примеры других символов, присутствующих во входных данных, и ожидаемый аналог:

Код: Выделить всё

\u2013 -> – -> -
\u2018 -> ‘ -> '
\u2019 -> ’ -> '
\u201c -> “ -> "
\u201d -> ” -> "
\u2022 -> • -> .
В идеале это делается без перечисления всех возможных входов и результатов. То есть не сам, так как я не хочу поддерживать довольно обширную таблицу сопоставлений.
Есть ли класс JDK или внешняя библиотека, которая можно сделать конвертацию?

Подробнее здесь: https://stackoverflow.com/questions/787 ... n9-variant

Вернуться в «JAVA»