我创建了一个带字符串的plist。在字符串里面我有变音符号,并且无法对它们进行编码以便正确显示。我的代码看起来像这样:
NSString *myFile = [[NSBundle mainBundle] pathForResource:@"LevelText" ofType:@"plist"];
strings = [[NSDictionary alloc] initWithContentsOfFile:myFile ];
stringkeys = [strings allKeys];
NSEnumerator *enumerator = [strings objectEnumerator];
while (value = [enumerator nextObject]) {
if(![value isEqualToString:@""]){
NSString *right = [NSString stringWithCString:value.UTF8String encoding: NSUTF8StringEncoding];
NSLog(@"Value: %s", right.UTF8String);
}
}
我将plist加载到NSDictionary对象中,然后通过它进行枚举。我还查看了stackoverflow上的另一个例子,但它不能像那样工作。变音符号总是这样表示:
anhören
答案 0 :(得分:1)
首先,摆脱对UTF8String
的所有额外调用。没有理由来回转换。
while (value = [enumerator nextObject]) {
if([value length] > 0){ // A little safer approach that is a good habit to get into
NSString *right = value;
NSLog(@"Value: %@", right);
}
}
如果您仍然遇到问题,请验证LevelText.plist
是否为UTF8编码,但我怀疑上述内容可以解决问题。