Я запускаю социальную сеть, которая требует, чтобы имена пользователей Unicode были уникальными (как и ожидалось).Преобразование оптически эквивалентных строк Unicode в ASCII в Java?
Некоторые творческие пользователи начали использовать кириллические (и другие) символы Юникода для создания оптически эквивалентных (но unicode различных) имен пользователей.
Например, они будут использовать кириллическую маленькую букву «а», которая выглядит идентичной римской.
Кто-нибудь знает способ автоматического преобразования этих оптически эквивалентных символов в Java? Я бы предпочел не создавать таблицу преобразования вручную, если механизм уже существует.
http://stackoverflow.com/questions/2096667/convert-unicode-to-ascii-without-changing-the-string-length-in-java/2097224#2097224 – user3020494
Это может зависеть от того, какой шрифт используется. Жесткая проблема. – goat
Ответ на данный вопрос не решает проблему. Первый ответ просто удаляет диакритические знаки и преобразует оставшиеся символы, отличные от ASCII, в «?». Второй ответ, касающийся Normalizer.Form.NFD, не влияет на кириллицу буква «а» вообще. – OnesAndZeroes