Я пытаюсь прочитать строки из массива, взятого из plist, и распечатать эти строки.
Строки в массиве содержат экранированные символы UTF8 - например, «Nuša Florjančič» становится "Nu\u0161a Florjan\u010di\u010d"
при чтении из списка. Нет возможности изменить содержимое списка, но моя программа должна правильно отображать имена.
Странно то, что Objective-C, кажется, делает это автоматически, когда я жестко кодирую строку. Однако, если я получу строку из списка, ничего не произойдет.
Для примера приведу код:
NSString *name1 = @"Nu\u0161a Florjan\u010di\u010d";
NSString *name2 = [list objectAtIndex:0];
NSLog(@"name 1: %@", name1);
NSLog(@"name 2: %@", name2);
[list objectAtIndex:0]
содержит @"Nu\u0161a Florjan\u010di\u010d"
- единственное отличие состоит в том, что он был установлен с помощью редактора plist.
Вывод на консоль:
2011-10-22 18:00:02.595 Test[13410:11c03] name 1: Nuša Florjančič
2011-10-22 18:00:02.595 Test[13410:11c03] name 2: Nu\u0161a Florjan\u010di\u010d
Я пробовал все виды вещей, включая преобразование строки в C-строку, а затем создание NSString
объекта с кодировкой UTF-8, но ничего не помогло.
Я бы очень признателен всем указателям от вас, которые могут помочь мне решить эту, казалось бы, обыденную проблему.