我正在开发一个利用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

09-10 07:28