Jes*_*edc 6 iphone objective-c utf-8 utf-16 nsstring
在我目前的执行情况UISearchBarController,我用[NSString compare:]里面filterContentForSearchText:scope:的委托方法返回基于他们的name属性的结果有关的对象UITableView,当你开始打字.
到目前为止,这在英语和韩语中都很好用,但我希望能够做的是在NSString定义的字符簇中搜索.这仅适用于少数几种语言,其中韩语是一种语言.
在英语中,compare:在输入的每个字母后返回新结果,但在韩语中,一旦完成识别的字形集群,就会生成结果.我希望能够通过构成音节的各个元素搜索我的韩语对象名称属性.
任何人都可以阐明如何处理这个问题吗?我确信它与手动搜索UTF16字符或使用较低级别的类有关.
干杯!
这是一个不起作用的具体示例:
`NSString *string1 = @"?";
`NSString *string2 = @"?";
NSRange resultRange = [[string1 decomposedStringWithCanonicalMapping] rangeOfString: [string2 decomposedStringWithCanonicalMapping] options:(NSLiteralSearch)];
Run Code Online (Sandbox Code Playgroud)
结果总是NSNotFound,有或没有decomposedStringWithCanonicalMapping.
有任何想法吗?
我不是专家,但我认为您不太可能找到您想要的干净解决方案。韩语字符的 Unicode 值与其组成的字素之间似乎没有任何关系。
\n\n例如“\xec\x9d\xb4”是\\uc774,“\xe3\x85\xa3”是\\u3163。从 NSString 的角度来看,它们只是两个不同的字符,彼此之间没有特定的关系。
\n\n我怀疑您必须找到或创建字符及其字素之间的显式映射,然后编写自己的搜索函数来查阅该映射。
\n\n如果涉及到这一点,这个关于 Unicode 韩语的很长的页面可以帮助您。它有一个包含所有字符的表,该表表明字符的编号方式及其组成部分之间的某种结构化关系。
\n| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |