我知道这个问题是在这个网站上提出的,但是所有答案都不能解决问题。所以我再次在这里问我的问题。
我创建了一个sqlite数据库(通过Firefox Sqlite管理器工具),并将数据存储在越南语中。
CREATE TABLE "customer" ("cus_id" TEXT, "cus_name" TEXT, "cus_address" TEXT, "cus_phone" TEXT);
INSERT INTO "customer" VALUES('KH1','Trần Văn A','Hai Bà Trưng, quận 1','0908112233');
INSERT INTO "customer" VALUES('KH2','Lê Hoài B','Hai Bà Trưng, quận 1','0908112233');
INSERT INTO "customer" VALUES('KH3','Nguyễn Thành C','Hai Bà Trưng, quận 1','0908112233');
我的应用是iOS应用。用户搜索文字“Tran”
我尝试查询:
SELECT * FROM customer WHERE cus_name LIKE '%Tran%';
我尝试了另一种解决方案:
SELECT * FROM customer WHERE cus_name COLLATE UTF8CI LIKE '%Tran%';
但是我有0条记录。然后,我尝试了更多在Internet上找到的解决方案,但我也得到了0条记录。
请帮忙。谢谢。
最佳答案
您应该在数据库表中为非Unicode越南语值再创建一个字段。您将在该字段中搜索。
要删除越南语字符串中的符号:
#define specialCharacter @[@"áàạảãâấầậẩẫăắằặẳẵ",@"ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ",@"éèẹẻẽêếềệểễ",@"ÉÈẸẺẼÊẾỀỆỂỄ",@"óòọỏõôốồộổỗơớờợởỡ",@"ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ",@"úùụủũưứừựửữ",@"ÚÙỤỦŨƯỨỪỰỬỮ",@"íìịỉĩ",@"ÍÌỊỈĨ",@"đ",@"Đ",@"ýỳỵỷỹ",@"ÝỲỴỶỸ"];
#define replaceCharacter @"aAeEoOuUiIdDyY";
+(NSString *)removeSign4VietnameseString : (NSString*)str
{
NSString *tempStr = str;
//
NSArray * _vietNameCharacter = specialCharacter;
NSString * _replaceCharacter = replaceCharacter;
for (int i = 0; i<_vietNameCharacter.count; i++) {
NSString* cRe = [NSString stringWithFormat:@"%C",[_replaceCharacter characterAtIndex:i]];
for (int j = 0; j<[[_vietNameCharacter objectAtIndex:i] length]; j++) {
NSString* cOri = [NSString stringWithFormat:@"%C",[[_vietNameCharacter objectAtIndex:i] characterAtIndex:j]];
tempStr = [tempStr stringByReplacingOccurrencesOfString:cOri withString:cRe];
}
}
return [tempStr lowercaseString];
}
关于ios - SQLite中的越南语Unicode文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33406340/