首页 > 解决方案 > Django istartswith utf8 不工作

问题描述

我有这个不区分大小写搜索的查询:

groups = Group.objects.filter.filter(name__istartswith=query)

它适用于英文字符。但不适用于 utf-8 俄语字符(无错误 - 仅使用相同代码区分大小写搜索)我该怎么办?

UPD:作为测试数据库,我使用 sqlite。我猜这里某处有问题。但是可能有一些解决方法吗?

标签: django

解决方案


SQLite ICU Extension的文档中:

SQLite 对这两个函数的内置实现仅提供英语中使用的 26 个字母的大小写映射。此扩展提供的基于 ICU 的功能在定义的情况下为所有 unicode 字符提供大小写映射。

ICU 提供两种类型的案例映射,“一般”案例映射和“特定语言”。有关两者之间的差异,请参阅 ICU 文档。

本质上,您需要确保您使用的是使用 ICU 支持编译的 SQLite 版本来执行不区分大小写的排序规则。


推荐阅读