Objective c 请求Google建议时的编码问题

Objective c 请求Google建议时的编码问题,objective-c,unicode,encoding,nsstring,nsjsonserialization,Objective C,Unicode,Encoding,Nsstring,Nsjsonserialization,我正在努力学习希腊语,但如果建议中包含的字符不是英语,我就会出错 例如,如果查询是“magni”,则响应将包含一个希腊单词“μαγνήσιο”作为建议 错误是: 错误域=NSCOCAERRORDOMAIN Code=261“文件“搜索”无法执行 可以使用文本编码Unicode(UTF-8)打开。” UserInfo={NSURL=,, NSStringEncoding=4} 方法是: + (NSArray *)suggestionsForQuery:(NSString *)query {

我正在努力学习希腊语,但如果建议中包含的字符不是英语,我就会出错

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

错误是:

错误域=NSCOCAERRORDOMAIN Code=261“文件“搜索”无法执行 可以使用文本编码Unicode(UTF-8)打开。” UserInfo={NSURL=,, 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 {

        // ...
    }
}
我试过:

  • 将编码设置为NSUTF16StringEncoding,但我得到了一些汉字

  • NSJSONSerialization通过设置“toolbar=firefox”获得JSON响应,但我得到了相同的错误

  • 错误域=NSCOCAERRORDOMAIN Code=3840“无法将数据转换为 字符40周围的字符串。“UserInfo={NSDebugDescription=无法 将数据转换为字符40左右的字符串


    关于如何修复它有什么想法吗?

    stringWithContentsOfURL:usedEncoding:error:
    返回编码
    0x80000207
    和一个希腊字符串。如何修复?我仍然收到这个错误:“文件“搜索”无法打开,因为无法确定其内容的文本编码。”是否
    -[NSData DATA WITH CONTENTS OFURL:
    工作?是的,没有问题。您能否上传为此创建的项目,以确保它不是我这边的一个奇怪错误?