我试图从数组中读取来自plist的字符串并打印这些字符串。将转义的UTF8字符转换回它们的原始形式
数组中的字符串包含转义的UTF8字符 - 例如,从plist读取时,“NušaFlorjanč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
对象,但没有在工作所有。
我真的很感谢你的任何指示,可能会帮助我解决这个看似平淡的问题。
非常感谢你,伙计!这就是诀窍:) – Tobi
伟大的一段代码。谢谢。 –
@Tobi如果有效,为什么你不能将它标记为答案? – DroidHeaven