CapitalizedString with Turkish letters

I have a problem with Turkish letters.

I have a method for deserialize the JSON. I'm getting the correct data from web service and I set it to my object's variable. newsCategory.name contains 'ASKERİ HAVACILIK' which is NSString.

 +(NewsCategory*) convertCategory: (NSMutableDictionary *) jsonDictionary{
        NewsCategory *newsCategory = [[NewsCategory alloc] init];
        newsCategory.name =[jsonDictionary objectForKey:@"name"];
        return newsCategory;
    }
I have to convert 'ASKERİ HAVACILIK' to 'Askeri Havacılık'. So I used capitalizedString for this.

NSString *capitalizedName = [jsonDictionary objectForKey:@"name"];
newsCategory.name =  [capitalizedName capitalizedString];
But unfortunately, it shows @"Askeri̇ Havacilik"
How I convert this to 'Askeri Havacılık' ?
Last updated:10/28/2014 2:28:05 AM

1 Answers

Anonymous User
Anonymous User

NSString *capitalizedName = [jsonDictionary objectForKey:@"name"];
NSString *accentedString = capitalizedName;
NSString * capitalizedString = [accentedString stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];
newsCategory.name =  [capitalizedString capitalizedString];
Depending on the nature of the strings you want to convert, you might want to set a fixed locale (e.g. English) instead of using the user's current locale. That way, you can be sure to get the same results on every machine.

Answer