2011-05-21 111 views
1
for (NSDictionary *status in statuses) 
    { 
     for (NSMutableString *name in [statuses objectForKey:@"response"]) 
     { 

      NSMutableString *name1=[[NSMutableString alloc] initWithFormat:@"%@",name]; 
      const char *utf8name=[name1 UTF8String]; 
      NSMutableString *name_str=[[NSMutableString alloc] initWithCString:utf8name encoding:4]; 

      [list_names addObject:[NSMutableString stringWithFormat:@"%@",name_str]]; 
      [name_str release]; 
     } 
NSLog(@"%@",list_names); 

(
    "{\n \"first_name\" = \"\\U0421\\U0442\\U0430\\U0441\";\n \"last_name\" = \"\\U0411\\U044b\\U043a\\U043e\\U0432\";\n uid = 41182952;\n}", 
    "{\n \"first_name\" = Victoria;\n \"last_name\" = Violette;\n uid = 56292826;\n}", 
    "{\n \"first_name\" = \"\\U042e\\U043b\\U044f\";\n \"last_name\" = \"\\U0411\\U0438\\U043b\\U043e\\U0448\\U043d\\U0438\\U0447\\U0435\\U043d\\U043a\\U043e\";\n uid = 73743149;\n}", 
    "{\n \"first_name\" = \"\\U041a\\U0430\\U0440\\U0438\\U043d\\U0430\";\n \"last_name\" = \"\\U041f\\U0435\\U0440\\U043e\\U0432\\U0430\";\n uid = 77001828;\n}", 
    "{\n \"first_name\" = \"\\U0415\\U043b\\U0438\\U0437\\U0430\\U0432\\U0435\\U0442\\U0430\";\n \"last_name\" = \"\\U041b\\U0435\\U0431\\U0435\\U0434\\U0435\\U043d\\U043a\\U043e\";\n uid = 90720663;\n}", 
    "{\n \"first_name\" = \"\\U041c\\U0430\\U0440\\U0438\\U043d\\U0430\";\n \"last_name\" = \"\\U0414\\U0440\\U044b\\U0433\\U0430\";\n uid = 91646824;\n}", 
    "{\n \"first_name\" = \"\\U0412\\U0438\\U043a\\U0430\";\n \"last_name\" = \"\\U041a\\U0430\\U0440\\U0430\\U0431\\U0446\\U043e\\U0432\\U0430\";\n uid = 96178026;\n}", 
    "{\n \"first_name\" = Pink;\n \"last_name\" = Angel;\n uid = 97996978;\n}", 
    "{\n \"first_name\" = \"\\U0410\\U043d\\U043d\\U0430\";\n \"last_name\" = \"\\U0420\\U043e\\U0434\\U0438\\U043d\\U0430\";\n uid = 133053290;\n}" 
)} 

英文文本顯示正常,但俄羅斯not.How解決它? 我鑫卡特在UTF8的問題,但我改變編碼爲UTF8並沒有變化。UTF 8字符串(俄羅斯編碼)錯誤,iphone

回答

0

當你這樣做:

NSLog(@"%@", list_names); 

它要求list_names-description方法。對於NSArray,這會將數組打印出來,因爲它會出現在舊文本plist中。該%@格式說明通常用於當它不被使用的字符串調試。

的代碼轉換爲UTF-8,然後回到一個NSString。這次往返旅行毫無用處。

代碼使用[NSString stringWithFormat:@"%@", obj]。這相當於撥打[obj description]

的代碼遍歷與未在循環體中使用的變量。

下面是一個簡單的建議:

for (NSDictionary *response in [status objectForKey:@"response"]) { 
    NSString *firstName = [response objectForKey:@"first_name"]; 
    NSString *lastName = [response objectForKey:@"last_name"]; 
    [list_names addObject:[NSString stringWithFormat:@"%@, %@", last_name, first_name]]; 
} 
NSLog(@"%@", list_names); 
+0

這段代碼也沒有作品( 「\ U041a \ U0443 \ U0440 \ U0431 \ U0430 \ U0442 \ U043e \ U0432 \ U0430 \ U041b \ U0435 \ U0440 \ U0430" , 「\ U0428 \ U043c \ U0443 \ U0440 \ U0430 \ U0442 \ U043e \ U0432 \ U0430 \ U041d \ U0430 \ U0441 \ U0442 \ U044e \ U0448 \ U043a \ U0430」, 「Sokolchenko,麗塔」 , 「米爾尼,維拉德」, 「\ U041b \ U0435 \ U0431 \ U0435 \ U0434 \ U0435 \ U043d \ U043a \ U043e,\ U0415 \ U043b \ U0438 \ U0437 \ U0430 \ U0432 \ U0435 \ U0442 \ U0430」, 「\ U0418 \ U0432 \ U0430 \ U0449 \ U0435 \ U043d \ U043a \ U043e,\ U041b \ U0451 \ U0448 \ U0430」 ) – SevenDays 2011-05-21 17:56:15