Проблема кодировки символов в URL, неанглийские символы -iOS
Я пытаюсь сделать поиск на YouTube. Этот код отлично работает с английскими буквами. Но когда я пытаюсь набрать неанглийские буквы, такие как ö, ü, ş возвращает ноль.
NSString *kStrJsonURL = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q=%@&key=API_KEY&format=5&alt=jsonc&callback=?", self.searchField.text];
NSURL *url = [NSURL URLWithString:kStrJsonURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id getJSON) {
_JSON = getJSON;
NSLog(@"%@", _JSON);
} failure:nil];
[operation start];
Я пытался закодировать URL, как это, но не работает..
[self.searchField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
2 ответа
Ты пробовал URLEncoding kStrJsonURL
? Смотрите принятый ответ для этого поста.
Ваш код должен выглядеть так:
//Added this line
[self.searchField.text stringByReplacingOccurrencesOfString:@" " withString:@"+"];
//
NSString *kStrJsonURL = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q=%@&key=API_KEY&format=5&alt=jsonc&callback=?", self.searchField.text];
NSURL *url = [NSURL URLWithString:[kStrJsonURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id getJSON) {
_JSON = getJSON;
NSLog(@"%@", _JSON);
} failure:nil];
[operation start];