我在Android上的SQLite表中有以下条目(table选项卡有1列- 'name‘文本)
Beta
Work
Úpal
User
如果我在Server中具有斯洛伐克语言排序规则和select * from tab order by name
中的这些项,它将正确地输出按以下顺序排列的项:
Beta
User
Úpal
Work
在斯洛伐克语中,带口音的U应该在U之后排序。
在Android上的SQLite中,它按照以下顺序输出:
Beta
User
Work
Úpal
我知道发生了什么,SQLite可能是用字符代码来比较字符,然后才是W。
我该怎么做才能让它按我的方式分类呢?SQLite整理文档声明,基本上所有排序规则都是二进制比较的变体,并且使用memcmp()比较字符串数据,而不管文本编码如何。
发布于 2013-01-22 21:58:37
SQLite的C允许安装新排序序列。这些函数不是由Android公开的,但至少它安装了两个额外的排序规则:
除了SQLite的默认
BINARY
排序器之外,Android还提供了另外两个LOCALIZED
(随系统当前区域设置而变化)和UNICODE
(这是Unicode排序规则算法,而不是针对当前区域设置的定制算法)。
https://stackoverflow.com/questions/14467806
复制相似问题