При создании моей базы данных SQLite в Android я установил локаль базы данных - db.setLocale (новая Локаль ("cz_CZ")). Это - чешская локаль.
Оператор SELECT работает и принимает локаль во внимание, например:
SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED
Найдет запись 'ščťžý'.
Но использование LIKE перестанет работать:
SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED
Никакая строка не возвращается.
BTW. Нет никакого java.text. Нормализованный класс в Android. Я думал, что мог сделать второй столбец с нормализованным текстом, лишенным специальных символов, которые будут использоваться для поиска - но я пропускаю класс или путь, как нормализовать Строку.
Вы знакомы с документацией SQLite для LIKE ? Пришла информация о символах, отличных от ASCII, и об ошибке. Возможно, в Android установлена более старая версия SQLite, где это проблема.
Я думаю, что второй нормализованный столбец, к сожалению, может быть вашим лучшим вариантом.