带有变音编码的NSString

时间:2012-06-06 21:41:45

标签: iphone ios nsstring

我创建了一个带字符串的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

1 个答案:

答案 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编码,但我怀疑上述内容可以解决问题。