Проблема с XML-анализом в iPhone - PullRequest
1 голос
/ 11 января 2010

У меня есть этот xml-канал на китайском языке, который NSXLParsers не может проанализировать. Выдает ошибку 31 при разборе.

ошибка 31 возникает из-за неизвестного кодирования документа.

Я пробовал кодировки UTF-8 и ascii для преобразования строки, отображаемой с помощью

[NSString stringwithContentsOfURL:@"http://news.baidu.com/n?cmd=4&class=finannews&tn=rss"]

в соответствующий формат.

Может ли любое тело пролить свет на то, как анализировать потоки XML, написанные на других языках.

Спасибо заранее

Ответы [ 3 ]

2 голосов
/ 11 января 2010

Попробуйте отладить с помощью

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
    NSString * errorString = [NSString stringWithFormat:@"Unable to download story feed from web site (Error code %i )", [parseError code]];
    NSLog(@"error parsing XML: %@", errorString);

    UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [errorAlert show];
}

Это поможет определить, связана ли проблема с XML или методом кодирования

1 голос
/ 11 января 2010

Поскольку файл закодирован в GB2312, вы должны предоставить кодировку с

[NSString stringWithContentsOfURL:@"http://..."
                         encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_2312_80)
                            error:NULL];
1 голос
/ 11 января 2010

Ответ - первая строка фида

<?xml version="1.0" encoding="gb2312"?>

Тогда читайте о gb2312

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...