Lors de la création de ma base de données SQLite dans Android, j'ai défini les paramètres régionaux de la base de données - db.setLocale (new Locale ("cz_CZ")). Ceci est un lieu tchèque.Utilisation de COLLATE dans Android SQLite - Les paramètres régionaux sont ignorés dans l'instruction LIKE
Une instruction SELECT fonctionne et prend les paramètres régionaux en compte, par exemple:
SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED
trouverez l'entrée 'ščťžý'.
Mais en utilisant LIKE échouera:
SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED
Aucune ligne est renvoyée.
BTW. Il n'y a pas de classe java.text.Normalized dans Android. Je pensais pouvoir faire une deuxième colonne avec un texte normalisé, dépouillé de caractères spéciaux, qui serait utilisé pour la recherche - mais il me manque une classe ou un moyen de normaliser la chaîne.
J'ai trouvé une réponse partielle: http://stackoverflow.com/questions/3211974/transforming-some-special-caracters-ee-into-e Mais c'est seulement comment supprimer accents. Je devrais faire une colonne en double dans ma base de données avec un texte normalisé ... N'y a-t-il pas un meilleur moyen? –