请求Google建议时遇到问题

Vul*_*kan 5 unicode encoding objective-c nsstring nsjsonserialization

我正在尝试将Google建议用于希腊语,但如果建议中包含英语以外的字符,则会收到错误消息.

如果查询是" magni ",例如响应将包含希腊词" μαγνήσιο "作为建议.试试吧

错误是:

Error Domain = NSCocoaErrorDomain Code = 261"无法使用Unicode(UTF-8)文本编码打开文件"search"." UserInfo = {NSURL = http://suggestqueries.google.com/complete/search?q=magni&client=toolbar&hl=el,NSStringEncoding = 4}

方法是:

+ (NSArray *)suggestionsForQuery:(NSString *)query
{
    query = [query stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    NSString *URLString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?q=%@&client=toolbar&hl=%@", query, @"el"]; // el is for greek

    NSError *error = nil;

    NSString *XMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:URLString] encoding:NSUTF8StringEncoding error:&error];

    if (error) {

        NSLog(@"Error: %@", error.description);
    }
    else {

        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 将编码设置为NSUTF16StringEncoding但我有一些中文字符.

  2. NSJSONSerialization通过设置"toolbar = firefox"来获得JSON响应但我得到了同样的错误.

错误域= NSCocoaErrorDomain代码= 3840"无法将数据转换为字符40周围的字符串." UserInfo = {NSDebugDescription =无法将数据转换为字符40周围的字符串.

关于如何修复它的任何想法?