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)
我试过了:
将编码设置为NSUTF16StringEncoding但我有一些中文字符.
NSJSONSerialization通过设置"toolbar = firefox"来获得JSON响应但我得到了同样的错误.
错误域= NSCocoaErrorDomain代码= 3840"无法将数据转换为字符40周围的字符串." UserInfo = {NSDebugDescription =无法将数据转换为字符40周围的字符串.
关于如何修复它的任何想法?