这是一个愚蠢的问题,但我就是无法让它发挥作用。我确实相信我需要转换为 NSString 并利用“stringWithUTF8String:”,但不完全理解如何在这段代码中实现它,所以我在 NSLog 中得到正确的输出。我一直在环顾四周,但仍然不起作用。 plist 是正确的。
我的输出是:
2010-11-07 21:43:00.419 plist_test[2984:207] Förbered och skriv
2010-11-07 21:43:00.425 plist_test[2984:207] KLART
2010-11-07 21:43:00.425 plist_test[2984:207] LÄS IN PLIST
2010-11-07 21:43:00.427 plist_test[2984:207] array2: (
ETT,
"TV\U00c5", ========Here is the problem, should be "TVÅ"
TRE,
FYRA
)
这是我正在使用的代码。
- (void)viewDidLoad {
NSLog(@"Förbered och skriv");
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:@"ETT"];
[array addObject:@"TVÅ"];
[array addObject:@"TRE"];
[array addObject:@"FYRA"];
[array writeToFile:@"/Users/PeterK/Desktop/plisttest.plist" atomically: TRUE];
NSLog(@"KLART");
NSLog(@"LÄS IN PLIST");
NSMutableArray *array2 = [[NSMutableArray alloc] init];
array2 = [NSMutableArray arrayWithContentsOfFile:@"/Users/PeterK/Desktop/plisttest.plist"];
NSLog(@"array2: %@", array2); ====here is the output
[super viewDidLoad];
}
最佳答案
Apple String Programming Guide表示代码中的 Objective C 字符串文字严格是 7 位 ASCII。 (编辑:它们不是严格的 7 位 ASCII,但是 7 位 ASCII 以外的任何内容都意味着它们是每个模块的,并且不会链接到静态数据部分,这可能会导致内存膨胀。换句话说,除非它是内存负担,去吧。)
您可以通过NSLocalizedString resources从数据加载字符串。方法。
关于objective-c - UTF8 的愚蠢问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119656/