I’m developing an iPhone app that takes advantage of Google search api and search through Arabic content.
Whenever I send a request that includes arabic letters in the URL to get a JSON file format I get error message indicates that the request has failed. this is what the request looks like:
https://www.googleapis.com/customsearch/v1?oe=utf-8&ie= ISO-8859-6&key=[MY KEY]&cx=013036536707430787589:_pqjad5hr1a&q=جوجل&alt=json
This is the method in my code that invokes the request and retrieves the data:
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/customsearch/v1?oe=utf-8&ie= ISO-8859-6&key=[MY KEY]&cx=013036536707430787589:_pqjad5hr1a&q=جوجل&alt=json"]] delegate:self];
You have to use percent-encoding in the URLs to make things work as you cannot just pass any arbitrary string in a URL. See this question for more information. Basically, it boils down to running your string through the
stringByAddingPercentEscapesUsingEncoding:method. Since this method supports UTF-8 encoding only, you’ll also have to passie=utf-8in the URL instead ofie=ISO-8859-6.