1

我从中获取位置数据foursquare api,然后将这些数据传递webservice给插入database.

现在,例如,当我获取墨西哥城的位置数据时,其中有一些特殊字符会出现以下错误:-

 Unrecognized escape sequence. (13443):

现在我正在使用以下编码进行 JSON 解析:-

 NSString *requestString =  [jsonstring UTF8String];

我如何解析特殊字符(西班牙数据),例如JSON中的Éspanol

有什么解决办法吗?

谢谢。

4

2 回答 2

1

我之前也遇到过同样的问题。我使用以下代码解决了这个特殊字符问题:-

+(NSString *)http_post_method_changed:(NSString *)url content:(NSString *)jsonContent
{
NSURL *theURL = [NSURL URLWithString:url];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20.0f];
NSData *requestData = [jsonContent dataUsingEncoding:NSUTF8StringEncoding];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[theRequest setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[theRequest setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody: requestData];
NSURLResponse *theResponse = NULL;
NSError *theError = NULL;
NSData *theResponseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
NSString *data=[[NSString alloc]initWithData:theResponseData encoding:NSUTF8StringEncoding];
NSLog(@"url to send request= %@",url);
NSLog(@"response1111:-%@",data);
return data;
}

传递您的 url 和 json 发送,它将为您提供所需的响应。

于 2013-07-03T10:12:45.743 回答
0

你用过这个吗?

NSArray *dataArray =
  [NSJSONSerialization JSONObjectWithData:_data
                                  options:NSJSONReadingAllowFragments
                                    error:&error];

确保(通过查阅 forsquare api 文档)提要确实是 UTF-8 格式 - 那么上述内容应该可以正常工作。

这假设 API 提要正在向您发送一个数组,NSDictionary否则请使用。

于 2013-07-03T09:34:27.477 回答