Java-строка, игнорирующая акценты - часть II

Этот вопрос является продолжением поиска строки Java, игнорируя акценты.

Ответ на исходный вопрос показывает нам, как удалить диакритические знаки из строк. Так, например, köln становится koln. Но łódź становится łodz - обратите внимание на l с штрихом.

Мой вопрос в том, как я могу удалить такт, чтобы łódź стал lodz?

Спасибо.

Ответ 1

Вы не можете, по крайней мере, не тривиально для всех таких писем. Буква ł (кроме внешнего вида и ее имени Unicode) вообще не связана с l (в Юникоде, по крайней мере, лингвистически это другое дело).

Ваш единственный вариант может быть таблицей преобразования для вашего случая использования, которую вы можете заполнить всеми символами, которые вам нужно преобразовать.

Ответ 2

Как предложил tchrist, я попытался использовать ICU (V 50.1): он не распознал его как производный от L. L с инсультом кажется особым случаем в Unicode. Посмотрите http://bugs.mysql.com/bug.php?id=11369 Говорят, что в Unicode 4.0 он не был подключен к L, а в Unicode 4.1 он есть. Интересно, кто-нибудь проверил проблему с Java-библиотекой на базе Unicode4.1.