Проблема кодирования с ответом ASIHttpRequest - PullRequest
3 голосов
/ 09 ноября 2010

Ребята, я попробовал все и не увенчался успехом.

Создание:

    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);

Даже «тип контента» говорит, что у него есть UTF-8.Но я вижу только такие вещи, как «ዹ» вместо символов кириллицы.

Кто-нибудь решал ту же проблему с кодировками?

Данные взяты из Basecamp API, если это поможет.Спасибо.

alt text

1 Ответ

0 голосов
/ 10 ноября 2010

Это проблема HTML кодирования / декодирования. Обратите внимание, что кодирование / декодирование URL отличается от другого.

Таблица кодирования / декодирования кириллицы - http://webdesign.about.com/od/localization/l/blhtmlcodes-ru.htm

Кодовый подход: http://code.google.com/p/statz/source/browse/trunk/NSString%2BHTML.h http://code.google.com/p/statz/source/browse/trunk/NSString%2BHTML.m

Или вот этот: https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/GTMNSString%2BHTML.m

Я еще не реализовал, теперь есть другие задачи.

Удачи.

...