我打算编写一个使用 SQLite 作为后端的 iOS 应用程序。我的数据库包含越南语文本,例如 "Hải Sơn"。习惯了谷歌搜索的用户想要输入一个搜索词,如“hai son”,以便找到上面的文字。我尝试了以下查询:
SELECT * FROM towns WHERE title LIKE '%hai son%';
我得到了 0 条记录。我如何使它起作用?我知道谷歌和其他搜索引擎处理这种情况,所以可以做到。我也不想让我的用户键入带有完整变音符号的越南文本,因为并非所有用户都知道如何这样做。
更新
我查看了 sqlite3 文档,看起来只有三个有效的归类序列:BINARY、NOCASE 和 RTRIM。我错过了什么吗?
更多信息
我的表是用以下方法创建的:
CREATE TABLE towns ( sid INTEGER PRIMARY KEY NOT NULL, title TEXT )
到目前为止,我只使用了 sqlite3 命令行来创建数据库、表以及从 CSV 文件导入文本。
我的sqlite3版本是3.7.12
更新2
Alias 给了我一个想法:创建我自己的整理顺序。如果有效,我会发布跟进。
最佳答案
试试这个:
SELECT * FROM towns WHERE title COLLATE UTF8CI LIKE '%hai son%';
关于ios - SQLite 中的越南语 Unicode 文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006986/