让我开始说我做了一些功课,但我没有找到任何问题的答案。
我正在尝试使用 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 给了我这个网址:
http ://translate.google.com/translate_a/t?client=t&text=hus&langpair=sv%7Cen
NSLog 也显示了正确的结果:
2013-03-01 00:07:14.681 testGoogTrans[941:11303] [[["house","hus","",""]]
ETC..
如果我现在在浏览器中调用之前显示的 url,我会得到一个内部具有相同结果的文件。
所以这在应用程序和浏览器上都可以正常工作。
现在,通过仅更改具有特殊字符的单词:
word = @"tåg"; // result should be "train"
其余的保持不变,我得到了一个奇怪的不同结果:
控制台中的打印网址:
http://translate.google.com/translate_a/t?client=t&text=t%C3%A5g&langpair=sv%7Cen似乎已正确转义。
如果我在浏览器中调用这个 url,我会得到一个包含以下内容的文件:
[[["trains","tåg","",""]],[["nom",["TRAIN","MARCH","ROPE","MARCHING","EXPEDITION","PROCESSION"]
等等......这是我所期望的。
相反,在应用程序中,控制台中显示的结果是:
[[["t\u00C3 \u00A5 g","t\u00C3\u00A5g","",""]],,"sv",,[["t\u00C3",[5],1,0,998, 0,1,0]
ETC...
我相信网址格式正确,我不知道为什么我从应用程序中得到不同的答案。
任何人都对此有所了解,或者可以让我找到解决这个问题的方向吗?
提前致谢