通过带有重音字符的列排序sqlite的问题(Á)

Nul*_*ion 10 sqlite android

我有一个sqlite数据库,我需要按一个列来排序,这个列有一些以重音字符开头的单词.这些物品订购错误,它们出现在结果的最后:

Antonio BonzoZetoÁngela

当sqlite数据库在该列中有重音时,如何正确订购?

谢谢

laa*_*lto 21

... ORDER BY column COLLATE UNICODE
Run Code Online (Sandbox Code Playgroud)

要么

... ORDER BY column COLLATE LOCALIZED
Run Code Online (Sandbox Code Playgroud)

参考:

除了SQLite的默认BINARYcollat​​or之外,Android还提供了两个LOCALIZED,它随系统的当前语言环境而变化,并且UNICODE是Unicode排序算法,而不是根据当前语言环境定制的.

例:

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));
}
Run Code Online (Sandbox Code Playgroud)

输出:

Ángela
Antonio
Bonzo
Zeto
Run Code Online (Sandbox Code Playgroud)