Search code examples
iphoneiosobjective-cjsonfoursquare

Passing Spanish Language Data through JSON


I am fetching location data from foursquare api and then passing this data to webservice to insert in the database.

Now e.g. when i get location data for Mexico city then there are some special characters in it which gives following error:-

 Unrecognized escape sequence. (13443):

Right now i am using following encoding for JSON parsing:-

 NSString *requestString =  [jsonstring UTF8String];

How can i parse Special character(Spanish Data) e.g Éspanol in JSON?

Any solution?

Thanks.


Solution

  • I was also having the same issue earlier with json. I solved this special character issue by using the following code:-

    +(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;
    }
    

    Pass your url and json to send and it will provide you the desired response.