I have a sqlite database, and i need to order by a column that haves some words starting by a accented character. These items are being ordered wrong, they are appearing on
Either
... ORDER BY column COLLATE UNICODE
or
... ORDER BY column COLLATE LOCALIZED
Reference:
In addition to SQLite's default
BINARY
collator, Android supplies two more,LOCALIZED
, which changes with the system's current locale, andUNICODE
, which is the Unicode Collation Algorithm and not tailored to the current locale.
Example:
db.execSQL("CREATE TABLE foo(a TEXT);");
db.execSQL("INSERT INTO foo VALUES('Antonio'),('Bonzo'),('Zeto'),('Ángela');");
Cursor c = db.rawQuery("SELECT * FROM foo ORDER BY a COLLATE UNICODE", null);
while (c.moveToNext()) {
Log.d("foo", c.getString(0));
}
Output:
Ángela
Antonio
Bonzo
Zeto