非拉丁字符的iPhone编码

我试图解析GET请求的JSON响应。当人物,拉丁没有问题。 但是,当他们不拉丁时,消息不能正确显示。我试过希腊而不是“πανος”我得到了“& pi;& alpha;& nu;& omicron;& sigmaf;” 我用来解析响应的代码是:
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog(@"response %@", responseString);




// array from the JSON string
NSArray *results = [responseString JSONValue];
当我尝试使用ajax从网站上阅读回复时,一切都很好。尝试使用来自iphone的数据向应用程序服务器发送GET请求时也是如此。因此,当我将数据传输到服务器并从网站上读取时,一切都很好。当我尝试在应用程序中显示相同的数据时,“休斯顿我们遇到了问题”。 有线索吗? 编辑:为了避免误解,这不是HTML的问题,我只是指出,对于一些readon utf-8字符在这里被正确编码并自动编码,例如。 “& pi”将转换为“π”,但客观c似乎不会单独执行此操作     
已邀请:
我认为有一种困惑。
π
是一个与UTF8 / Latin等文本编码无关的HTML实体。 阅读维基百科了解有关...的详细信息 您需要一个解析器来解码这些实体,就像之前由Chiefly Izzy提到的那样:
NSString+HTML category and method stringByReplacingHTMLEntities
    
查看Cocoanetics NSString + HTML类别和方法stringByReplacingHTMLEntities方法。您可以在以下位置找到它: https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML/blob/master/Classes/NSString%2BHTML.m 这里有很多HTML实体和相应的unicode字符。     
尝试使用此代码段:
  NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

  NSString *decodedString = [NSString stringWithUTF8String:[responseString cStringUsingEncoding:[NSString defaultCStringEncoding]]];


  NSLog(@"response %@", decodedString);


  // array from the JSON string
  NSArray *results = [decodedString JSONValue];
    
我遇到了同样的问题,但我通过更改JSON解析器解决了这个问题。我已经开始使用SBJSONParser了,现在我得到了合适的结果。这是我用过的代码片段
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
SBJSON *parser=[[SBJSON alloc]init];
NSArray *JSONData = (NSArray*)[parser objectWithString:returnString error:nil];
    

要回复问题请先登录注册