Objective c 制作sqlite中字符串的规范化版本-波兰语字符ł;
Apple提供了使用数据库中存储的文本的标准化版本在数据库中创建附加列的示例: 有一个包含代码的函数normalizeString:Objective c 制作sqlite中字符串的规范化版本-波兰语字符ł;,objective-c,database,string,sqlite,Objective C,Database,String,Sqlite,Apple提供了使用数据库中存储的文本的标准化版本在数据库中创建附加列的示例: 有一个包含代码的函数normalizeString: NSMutableString *result = [NSMutableString stringWithString:unprocessedValue]; CFStringNormalize((CFMutableStringRef)result, kCFStringNormalizationFormD); CFStringFold((CFMutableStr
NSMutableString *result = [NSMutableString stringWithString:unprocessedValue];
CFStringNormalize((CFMutableStringRef)result, kCFStringNormalizationFormD);
CFStringFold((CFMutableStringRef)result, kCFCompareCaseInsensitive | kCFCompareDiacriticInsensitive | kCFCompareWidthInsensitive, NULL);
我已经测试过这种方法,有一个将文本转换为规范化版本的示例:
aacłozneec
除以下字符外,所有变音字符均已正确更改:
有没有其他选择来进行适当的规范化?我不会说波兰语,因此我的回答可能大错特错,但根据字符“ł”和“Ł”的说法,它们不是
“普通”字符与变音符号的组合
Unicode数据文件中“ą”的条目为
0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
[result replaceOccurrencesOfString:@"ł" withString:@"l" options:0 range:NSMakeRange(0, [result length])];