Начну с того, что я сделал домашнее задание, но не нашел ответа на свой вопрос.
Я пытаюсь использовать ссылку translate.google.com/translate_a для перевода одного слова со шведского на английский. Я делаю это в Objective-C.
вот пример:
word = @"hus"; // result should be "house"
urlPath = [NSString stringWithFormat:@"/translate_a/t?client=t&text=%@&langpair=sv|en", word];
url = [[NSURL alloc] initWithScheme:@"http" host:@"translate.google.com" path:urlPath];
NSLog(@"%@\n\n", url);
request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"GET"];
myData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
result = [[NSString alloc] initWithData:myData encoding: NSASCIIStringEncoding];
NSLog(@"%@\n\n", result);
self.viewController.textViewGood.text = result;
NSLog дает мне этот URL:
http://translate.google.com/translate_a/t?client=t&text=hus&langpair=sv%7Cen
NSLog также показывает правильный результат:
01.03.2013 00:07:14.681 testGoogTrans[941:11303] [[["дом","хус","",""]]
так далее..
Если я сейчас вызову указанный ранее URL-адрес в браузере, я получу внутри файл с тем же результатом.
Так что это отлично работает как в приложении, так и в браузере.
теперь, изменив только слово, имеющее специальный символ:
word = @"tåg"; // result should be "train"
а остальные остаются прежними, я получаю странный другой результат:
распечатанный URL в консоли:
http://translate.google.com/translate_a/t?client=t&text=t%C3%A5g&langpair=sv%7Cen, который кажется правильно экранированным.
если я вызову этот URL-адрес в браузере, я получу файл со следующим содержимым:
[[["поезда","tåg","",""]],[["ном",["ПОЕЗД","МАРШ","КАНАТ","МАШИННЫЙ","ЭКСПЕДИЦИЯ","ШЕСТВИЕ"]
и т. д., чего я и ожидаю.
вместо этого в приложении в консоли отображается следующий результат:
[[["t\u00C3 \u00A5 g","t\u00C3\u00A5g","",""]],,"sv",,[["t\u00C3",[5],1,0,998,0,1,0]
так далее...
я считаю, что URL-адрес правильно отформатирован, и я не знаю, почему я получаю другой ответ из приложения.
кто-нибудь знает что-то об этом или может указать мне направление, чтобы решить эту проблему?
заранее спасибо