0

文字列を使用して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

4

1 に答える 1

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でエンコードされていることを確認してください。ただし、上記で問題が解決すると思われます。

于 2012-06-06T21:50:09.260 に答える