在某些语言中有À
之类的字母,我看到本地iOS将À
放在与A
相同的部分的表视图部分。
我想做同样的事情,我通过比较第一个字母来构建我的部分,所以我需要À
等于A.
我尝试使用localizedCompare
,但我仍然没有得到那两个是平等的。
有没有办法进行这种比较?或归一化À
所以它将是A
?
答案 0 :(得分:2)
不要根据其他答案进行转换或转换。首先,尝试-[NSString localizedStandardCompare:]
。如果这不符合您的要求,请将选项中的NSDiacriticInsensitiveSearch
传递给其中一个NSString
比较方法(例如-compare:options:range:locale:
)。您可能还想使用其他选项,例如NSCaseInsensitiveSearch
。
答案 1 :(得分:0)
您可以先将其转换为常规字母然后进行比较。
NSString *originalStr = @"À béautiful day";
NSData *d = [originalStr dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *converted = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];
答案 2 :(得分:0)
这是关于NSHipser http://nshipster.com/cfstringtransform/
上的CFStringTransform
的精彩文章
接下来,应用kCFStringTransformStripCombiningMarks转换来删除任何变音符号或重音符号。