django - Django istartswith utf8 不工作
问题描述
我有这个不区分大小写搜索的查询:
groups = Group.objects.filter.filter(name__istartswith=query)
它适用于英文字符。但不适用于 utf-8 俄语字符(无错误 - 仅使用相同代码区分大小写搜索)我该怎么办?
UPD:作为测试数据库,我使用 sqlite。我猜这里某处有问题。但是可能有一些解决方法吗?
解决方案
从SQLite ICU Extension的文档中:
SQLite 对这两个函数的内置实现仅提供英语中使用的 26 个字母的大小写映射。此扩展提供的基于 ICU 的功能在定义的情况下为所有 unicode 字符提供大小写映射。
ICU 提供两种类型的案例映射,“一般”案例映射和“特定语言”。有关两者之间的差异,请参阅 ICU 文档。
本质上,您需要确保您使用的是使用 ICU 支持编译的 SQLite 版本来执行不区分大小写的排序规则。
推荐阅读
- reactjs - 在 NextJS 中实现本地喜欢/不喜欢的功能并使其在客户端路由之间保持不变
- c++ - 函数标题中的 Qt/Qt Creator 和箭头运算符 (->) - 是否有效?
- spring-boot - Apache Camel CXF 设置传输属性
- amazon-web-services - 使用 Visual Studio IDE 部署 sam 时出现 Python UTF-8 错误
- kubernetes - kubernetes 批量重启所有命名空间 pod 以使新的配置映射配置工作
- angular - Javascript 可以代替 TypeScript 用于 Angular 开发吗?
- php - 使用 laravel 命令生成多个文件
- vim - 将 Vim 的语言特定设置放在哪里?
- c# - ReSharper 以错误的方式检测到“表达式始终为真”
- c# - EF 核心 ThenInclude Select 说“在 Include 中使用的 Lambda 表达式无效”