Beim Erstellen meiner SQLite-Datenbank in Android habe ich das Datenbankgebietsschema - db.setLocale (neues Gebietsschema ("cz_CZ")) festgelegt. Dies ist ein tschechischer Gebietsschema.Verwenden von COLLATE in Android SQLite - Locales wird in LIKE-Anweisung ignoriert
Eine SELECT-Anweisung funktioniert und nimmt das Gebietsschema berücksichtigt, zum Beispiel:
SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED
wird der Eintrag 'ščťžý' gefunden.
Aber mit LIKE fehl:
SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED
Keine Zeile zurückgegeben wird.
BTW. Es gibt keine java.text.Normalized-Klasse in Android. Ich dachte, ich könnte eine zweite Spalte mit einem normalisierten Text erstellen, ohne Sonderzeichen, der für die Suche verwendet würde - aber ich vermisse eine Klasse oder einen Weg, wie man den String normalisiert.
ich hier eine Teilantwort gefunden: http://stackoverflow.com/questions/3211974/transforming-some-special-caracters-ee-into-e Aber das ist nur, wie zu entfernen Akzente. Ich müsste eine doppelte Spalte in meiner Datenbank mit einem normalisierten Text machen ... Gibt es keinen besseren Weg? –