我正在从服务器下载数据(文本)。

我都尝试过:NSISOLatin1StringEncodingNSASCIIStringEncoding
但是我一直看到类似的东西:{"estado":"M\u00e9xico"}
注意,它应该读取México而不是M\u00e9xico(在e上带有重音符号)。

在网上看,我发现\u00e9实际上是é link.

但是NSString无法解释这一点,而是在我的UILabels上打印出奇怪的东西:

非常感谢您的帮助。

阿尔索(Alsso),如果您感到不满意,可以从此处下载数据:http://www.miorden.com/demo/iphone/estadoJSON.php

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"]];

NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

NSLog(@"Downloaded: %@", string);

string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"] encoding:NSISOLatin1StringEncoding error:nil];

NSLog(@"Downloaded: %@", string);

我已经尝试了好几天,它正在杀死我!

非常感谢!

最佳答案

数据为JSON格式,因此您也需要对其进行JSON解码。

例如,使用以下命令:https://github.com/TouchCode/TouchJSON

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.miorden.com/demo/iphone/estadoJSON.php"]];

NSError *error;
NSArray *array = [[CJSONDeserializer deserializer] deserializeAsArray:data error:&error];

NSLog(@"Test: %@", [[array objectAtIndex:11] valueForKey:@"estado"]);

输出
2011-08-11 09:35:45.742 enctest[63236:407] Test: México

08-26 03:54