2010-11-09 31 views
3

Les gars, j'ai tout essayé et n'ai pas réussi.Problème de codage avec la réponse ASIHttpRequest

Création:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:self.urlString]]; 
request.delegate = self; 
[request setDefaultResponseEncoding:NSUTF8StringEncoding]; 
[request setResponseEncoding:NSUTF8StringEncoding]; 
[request setRequestMethod:@"PUT"]; 
[request addRequestHeader:@"Accept" value:@"application/xml"]; 
[request addRequestHeader:@"Content-Type" value:@"application/xml; charset=UTF-8;"]; 

Desplaying:

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
     [self HideProgressing]; 

//  NSString *poweredBy = [[request responseHeaders] objectForKey:@"X-Powered-By"]; 
//  NSString *contentType = [[request responseHeaders] objectForKey:@"Content-Type"]; 

     NSString *body = [request responseString]; 
     //NSString *body = [[NSString alloc] initWithData:[request responseData] encoding:NSUTF8StringEncoding]; 
     NSLog(@"%@\n%@", body, request.responseStatusMessage); 

Même "type de contenu", dit-il a UTF-8. Mais je ne vois que des trucs comme "& # 4857" au lieu de symboles cyrilliques.

Est-ce que quelqu'un a résolu le même problème avec les encodages?

Les données proviennent de Basecamp API, si cela vous aide. Merci.

alt text

Répondre

0

C'est un problème Coder/décoder HTML. Notez, URL encoder/décoder est un différent.

Encode/table de décodage pour cyrillique - http://webdesign.about.com/od/localization/l/blhtmlcodes-ru.htm

L'approche de code: http://code.google.com/p/statz/source/browse/trunk/NSString%2BHTML.h http://code.google.com/p/statz/source/browse/trunk/NSString%2BHTML.m

Ou celui-ci: https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/GTMNSString%2BHTML.m

Je n'ai pas encore implémenté, j'ai d'autres tâches maintenant.

Bonne chance.