请求Google建议时遇到问题

时间:2016-12-18 18:00:34

标签: objective-c unicode encoding nsstring nsjsonserialization

我正在尝试让Google Suggestions为希腊语工作,但如果建议中包含的字符不是英语,我会收到错误。

如果查询是“ magni ”,例如响应将包含希腊词“μαγνήσιο”作为建议。 Try it

错误是:

  

错误域= NSCocoaErrorDomain代码= 261“文件”搜索“不能   使用Unicode(UTF-8)编码文本打开。“   的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 {

        // ...
    }
}

我试过了:

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

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

  3.   

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

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

0 个答案:

没有答案