2010-04-20 7 views
1

나는에 의해 실행 가능한 번역 API URL을 테스트 한 :UTF8 문제를 중국어 번역에

http://translate.google.com/translate_a/t?client=t&text=%E5%BB%A3%E5%A0%B4&langpair=zh|zh-CN

그리고 JSON 형식으로되어 다음과 같은 올바른 결과를 반환

{ "문장": [{ "트랜스": "广场", "오리지널": "廣場", "음역하여": "Guǎngchǎng"}, "SRC": "에서 zh-CN"}

그러나 Xcode에서이 함수를 사용하려고하면이 문제가 발생합니다 ... 여기 내 코드 :

NSData * data;

NSString *urlPath = [NSString stringWithFormat:@"/translate_a/t?client=t&text=%@&langpair=zh|zh-CN",qText]; 

NSURL *url = [[NSURL alloc] initWithScheme:@"http" 
             host:@"translate.google.com" 
             path:urlPath]; 

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:url]; 
[request setHTTPMethod:@"GET"]; 

NSURLResponse *response; 
NSError *error; 
data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; //Problem's here. It returns nil. 
NSLog(result); 

처음에 나는 다른 인코딩뿐만 아니라 (NSISOLatin1StringEncoding)를 시도 있도록이 문제를 인코딩하는 것 짐작하지만, 내가 잘못 대답을 얻었다 : { "문장": [{ "트랜스": "A", "오리지널"을 " zh-CN "}

이 문제를 해결하는 방법을 아는 사람이 있습니까? 고마워요!

답변

0

오류 개체를 검사 해 보셨습니까? 오류가 발생하면이 호출은 오류 개체를 설정하고 계속 진행합니다. 오류가 발생하지 않거나 일반적인 오류처럼 throw되지 않습니다. sendSynchronousRequest 호출 한 후이 같은

시도 뭔가 : 에러가 발생하면

if (error != nil) 
{ 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
} 

이 자세한 내용을 제공해야합니다.