Как использовать «CapitalizedString» с турецкими буквами?

У меня проблема с турецкими буквами.

У меня есть метод десериализации JSON. Я получаю правильные данные из веб-службы и устанавливаю их в переменную своего объекта. newsCategory.name содержит 'ASKERİ HAVACILIK', что является NSString.

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

Мне нужно преобразовать 'ASKERİ HAVACILIK' в 'Askeri Havacılık'. Поэтому я использовал capitalizedString для этого.

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

Но, к сожалению, он показывает @"Askeri̇ Havacilik"введите здесь описание изображения

Как преобразовать это в 'Askeri Havacılık'?


person Göktuğ Aral    schedule 25.09.2014    source источник


Ответы (1)


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

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

В зависимости от характера строк, которые вы хотите преобразовать, вы можете установить фиксированную локаль (например, английский) вместо использования текущей локали пользователя. Таким образом, вы можете быть уверены, что получите одинаковые результаты на каждой машине.

person Melih Büyükbayram    schedule 25.09.2014
comment
Он по-прежнему показывает, как «Аскери Хавачилик». Как преобразовать «i» в «i»? @Мелих - person Göktuğ Aral; 25.09.2014