0

で国際文字を表示できませんUIAlertView

このURLから JSON 形式の文字列を取得しています。

返された形式は問題なく、正しい文字が含まれています。

アプリにロードしようとすると、次のようUIAlertViewに表示されます。

ここに画像の説明を入力

スペイン語、クロアチア語、中国語などの Unicode 文字を表示する正しい方法は何ですか?

設定でデフォルトの言語を変更しても問題は解決しませんでした。

4

1 に答える 1

1

コードがなければ、どこが間違っているのかを指摘するのは非常に困難です。以下のコードは機能します。エンコードされたデータで特にフルーティーなことをしているとしか思えません。

NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://kancelarijahatipovic.com/translate.php?from=eng&dest=hr&phrase=iron"]] returningResponse:nil error:nil];    
NSString *string = [NSString stringWithUTF8String:[data bytes]];
SBJsonParser *parser = [[SBJsonParser alloc] init];
id returnVal = [parser objectWithString:string];  
if( [returnVal isKindOfClass:[NSDictionary class]]) {  
    //build string  
    NSMutableString *alertString = [NSMutableString string];    
    if( [returnVal objectForKey:@"tuc"] != nil ) {  
        NSArray *tucs = [returnVal objectForKey:@"tuc"];  

        for( id tucObject in tucs ) {  
            if( [tucObject isKindOfClass:[NSDictionary class]] && [tucObject objectForKey:@"phrase"] != nil ) {  
                id phraseObject = [tucObject objectForKey:@"phrase"];  

                if( [phraseObject isKindOfClass:[NSDictionary class]] && [phraseObject objectForKey:@"text"] != nil )  {  
                    [alertString appendFormat:@"%@\n", [phraseObject objectForKey:@"text"]];  
                }  
            }  
        }  
    }  

    if( alertString.length > 0 ) {  
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"example" message:alertString delegate:nil cancelButtonTitle:@"okay" otherButtonTitles: nil];  
        [alertView show];  
    }  
}  

編集: SBJsonParserobjectWithData:は上記と同じ結果を提供します。

于 2013-04-12T13:12:52.637 に答える