2013-03-01 72 views
2

讓我開始說我做了一些家庭作業,但我沒有找到任何答案我的問題。谷歌翻譯將特殊字符使用objective-c

我在嘗試使用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這似乎是正確逃脫。

如果我把這個網址在瀏覽器中,我得到了以下內容的文件:

[[[ 「火車」, 「標籤」, 「」, 「」],[」 [「TRAIN」,「MARCH」,「ROPE」,「MARCHING」,「EXPEDITION」,「PROCESSION」]

etc ...這就是我所期望的。

代替,在該應用中,在控制檯中顯示的結果是:

[[[ 「T \ u00C3 \ u00A5 克」, 「T \ u00C3 \ u00A5g」, 「」, 「」 ]] ,, 「SV」,[[ 「T \ u00C3」,[5],1,0,998,0,1,0]

等等

我相信,網址是格式正確,我不知道爲什麼我從應用程序中得到不同的答案。

任何人都知道這件事或可以把我的方向來解決這個問題?

在此先感謝

回答

0

我覺得這行是罪魁禍首:

result = [[NSString alloc] initWithData:myData encoding: NSASCIIStringEncoding]; 

,應該是:

result = [[NSString alloc] initWithData:myData encoding: NSUTF8StringEncoding]; 

當我試圖在Linux下的Chrome瀏覽器的網址,就會下載一個文件名爲t和:

$ file t 
t: UTF-8 Unicode text, with very long lines, with no line terminators 
+0

感謝您的回答。二者的結果都一樣。當我在任何瀏覽器中嘗試時,結果總是很好。它是具有預期結果(train)的t.js文件。它是從應用程序內,結果是不「正確」或如預期。 如果您使用NSUTF8StringEncoding來翻譯單詞「hus」,因爲返回值是ASCII,結果會得到(null) – pm200107 2013-03-01 13:04:04