我正在开发一个利用Google搜索API并通过阿拉伯语内容进行搜索的iPhone应用程序。
每当我发送在URL中包含阿拉伯字母的请求以获取JSON文件格式时,我都会收到错误消息,指示该请求已失败。这是请求的样子:
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];
最佳答案
您必须在URL中使用百分比编码才能使工作正常,因为您不能仅在URL中传递任意字符串。有关更多信息,请参见this question。基本上,它归结为通过stringByAddingPercentEscapesUsingEncoding:
方法运行字符串。由于此方法仅支持UTF-8编码,因此还必须在URL中传递ie=utf-8
而不是ie=ISO-8859-6
。