2013-08-28 67 views
0

我正在使用谷歌翻譯的法語和一些結果字母回到我身邊的一些符號。經過一番研究,我知道這是因爲編碼,但我需要一些幫助,因爲我找不到足夠的信息。如何在法式字符中編碼法式字符?

這裏是我的代碼:

- (void)performTranslation:(NSString *) inputStr { 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *outLang = [defaults objectForKey:@"OutLanguage"]; 

NSString *[email protected]"tr"; 
NSString *textEscaped = [inputStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  

NSLog(@"textEscaped=%@",textEscaped); 

NSString *url = [NSString 
stringWithFormat:@"https://www.googleapis.com/language/translate/v2?  key=AIzaSyAx5dSiKm1J-qkc0qKZpYnWhgFjYpoC84g&q=%@&source=%@&target=%@",textEscaped, inLang, outLang]; 

NSLog(@"REQ : -%@-", url); 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 
[[NSURLConnection alloc] initWithRequest:request delegate:self]; 

}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSLog(@"didReceiveResponse"); 
     } 



- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 

    NSLog(@"didReceiveData=%@",data); 

    NSString *result = [[[NSString alloc] initWithData:data 
             encoding:NSUTF8StringEncoding] autorelease]; 
    NSLog(@"OUTPUT : %@", result); 

}

我收到transfert d'argent但我希望transfert d'argent。這個d'字母需要不同種類的編碼我猜。

+0

你可能不想'NSUTF8StringEncoding'。嘗試從文檔中找出它實際是什麼,如果你找不到它,試試UTF16。 – Kevin

+1

請告訴我們什麼是錯的。給我們一個你得到的壞數據的例子。 –

+0

@mike韋勒例如我需要得到「transfert d'argent」,但我得到的東西像「transfert d '銀色」這個d'字母需要不同類型的編碼我猜。 –

回答

1

'是一個html或xml實體。您收到的數據可能是xml編碼的。如果是這種情況,則需要使用正確的XML解析器解析響應。我猜你正在手動解析出你想要的數據。

+0

感謝您的回覆,我編輯了我的代碼在答案,我解析這樣。這是錯誤的方式? –