如何使用' CapitalizedString'土耳其字母?

时间:2014-09-25 12:08:04

标签: ios objective-c nsstring capitalize turkish

我的土耳其字母有问题。

我有一个反序列化JSON的方法。我从Web服务获取正确的数据,并将其设置为我的对象的变量。 newsCategory.name包含'ASKERİHAVACILIK',这是NSString。

 +(NewsCategory*) convertCategory: (NSMutableDictionary *) jsonDictionary{
        NewsCategory *newsCategory = [[NewsCategory alloc] init];
        newsCategory.name =[jsonDictionary objectForKey:@"name"];
        return newsCategory;
    }

我必须将'ASKERİHAVACILIK'转换为'AskeriHavacılık'。所以我使用了capitalizedString

NSString *capitalizedName = [jsonDictionary objectForKey:@"name"];
newsCategory.name =  [capitalizedName capitalizedString];

但不幸的是,它显示了@“Askeri̇Havacilik”enter image description here

我如何将其转换为'AskeriHavacılık'

1 个答案:

答案 0 :(得分:1)

NSString *capitalizedName = [jsonDictionary objectForKey:@"name"];

NSString *accentedString = capitalizedName;
NSString * capitalizedString = [accentedString stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];
newsCategory.name =  [capitalizedString capitalizedString];

根据要转换的字符串的性质,您可能希望设置固定的区域设置(例如英语),而不是使用用户的当前区域设置。这样,您可以确保在每台机器上获得相同的结果。