2012-06-06 53 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編碼,但我懷疑上面會解決這個問題。