Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SQLite中的越南语Unicode文本搜索_Ios_Search_Unicode_Sqlite_Southeast Asian Languages - Fatal编程技术网

Ios SQLite中的越南语Unicode文本搜索

Ios SQLite中的越南语Unicode文本搜索,ios,search,unicode,sqlite,southeast-asian-languages,Ios,Search,Unicode,Sqlite,Southeast Asian Languages,我计划编写一个iOS应用程序,使用SQLite作为后端。我的数据库包含越南语文本,如“Hải Sơn“。习惯于谷歌搜索的用户希望输入一个搜索词,如“hai son”,以查找上面的文本。我尝试了以下查询: SELECT * FROM towns WHERE title LIKE '%hai son%'; 我得到了0张唱片。我怎样才能让它工作?我知道谷歌和其他搜索引擎会处理这个案件,所以这是可以做到的。我也不想让我的用户键入带有完整变音符号的越南语文本,因为并非所有用户都知道如何这样做 更新 我查

我计划编写一个iOS应用程序,使用SQLite作为后端。我的数据库包含越南语文本,如“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%';

与此处找到的答案相关:

我知道这是一个旧线程,但我找到了解决方案,所以将其发布给其他人。如果您使用的是sqlite3库,则可以使用
sqlite3\u bind\u text()

如下

...
sqlite3_stmt *detailStmt;
NSString *t1=@"%%Hải Sơn%%";
const char *sql = "SELECT * FROM towns WHERE title LIKE ?";   
   if(sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) == SQLITE_OK) 
   {  
    sqlite3_bind_text(detailStmt, 1, [t1 UTF8String], -1, SQLITE_TRANSIENT);
...

我从命令行版本(来自Mac OS X的sqlite3)尝试了您的解决方案,得到了以下错误:错误:没有这样的排序顺序:utf8\u general\u Ci如果您尝试将其替换为
COLLATE UTF8CI
?@HaiVu-这似乎是使用sqlite3的人的常见问题。几篇文章中提到的一点是在表中添加另一列,其中包含ASCII版本的文本。这是一个很好的讨论。