2012-06-06 36 views
0

我创建了一个带字符串的plist。在字符串里面我有模糊的声音,并且不能将它们编码为正确显示。我的代码是这样的:NSString与umlaute编码

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

问题只是在控制台内发生,我打印出来的字符串到我的TextView和一切工作正常。 如果我应该删除帖子,也许有人应该发表评论,否则它可能是一个有同样问题的人很好的帮助... –

回答

0

首先,摆脱所有的额外要求,以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是utf-8编码,但我怀疑上面会解决这个问题。