2010-07-23 37 views
1

我嘗試使用谷歌API的轉換爲...以及翻譯一些文字,但其舉止異常。當我的查詢(要翻譯的文本)不包含空格時,它可以正常工作,但只要向查詢中引入一個空格,我就不會返回任何結果。這是我的代碼:找不出這個JSON字符串

-(void)translateText:(NSString *)originalText { 

    //Construct request url 
    NSString *urlString = [NSString stringWithFormat:@"http://ajax.googleapis.com/ajax/services/language/translate?q=%@&v=1.0&langpair=en%%7cde", originalText]; 
    NSURL *url = [NSURL URLWithString:urlString]; 

    // Get the contents of the URL as a string, and parse the JSON into Foundation objects 
    NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 

    //Get out the translated text 
    NSDictionary *results = [jsonString JSONValue]; 
    NSString *answer = [[results objectForKey:@"responseData"] objectForKey:@"translatedText"]; 

    self.translatedText = answer; 
} 

我無法弄清楚到底發生了什麼。有任何想法嗎?

回答

1

你需要URL編碼的originalText:

http://mesh.typepad.com/blog/2007/10/url-encoding-wi.html

+0

aaaaah,是的,會這樣做。多謝! 任何其他人閱讀,我不得不做出一個NSURL出來之前打電話給我的NSString此消息:originalText stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding] – lms 2010-07-23 00:58:29

1

雷Wenderlich最近在翻譯通過谷歌翻譯和JSON在iPhone BTW做了tutorial