【发布时间】:2011-12-13 05:40:30
【问题描述】:
我正在尝试从来自 plist 的数组中读取字符串并打印这些字符串。
数组中的字符串包含转义的 UTF8 字符 - 例如,从 plist 读取时,“Nuša Florjančič”变为"Nu\u0161a Florjan\u010di\u010d"。无法更改 plist 的内容,但我的程序需要正确显示名称。
奇怪的是,当我对字符串进行硬编码时,Objective-C 似乎会自动执行此操作。但是,如果我从 plist 中获取字符串,则什么也不会发生。
举个例子,下面是一些代码:
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 字符串,然后使用 UTF-8 编码创建 NSString 对象,但都没有任何效果。
非常感谢您的任何建议,以帮助我解决这个看似平凡的问题。
【问题讨论】:
标签: ios objective-c string cocoa-touch nsstring