Итак, у меня есть следующий код:
NSURL *baseURL = [NSURL URLWithString:@"http://www.baseurltoanxmlpage.com"];
NSURL *url = [NSURL URLWithString: @"page.php" relativeToURL:baseURL];
NSArray *array = [NSArray arrayWithContentsOfURL:url];
Если страница XML выглядит следующим образом:
<array><dict><key>City</key><string>Montreal</string></dict></array>
Массив возвращается нормально. Однако, если файл XML выглядит следующим образом:
<array><dict><key>City</key><string>Montréal</string></dict></array>
Массив возвращает ноль. Я думаю, это как-то связано со специальным символом "é".
Как бы я справился с этими персонажами? Страница XML генерируется с помощью PHP. Функция utf8_encode () возвращает массив, но тогда я не знаю, что делать с закодированным символом «é».
Вот рабочее решение:
NSString *stringArray = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSArray *array = [stringArray propertyList];
NSLog(stringArray);
NSLog(@"%@", array);
NSLog([[[array objectAtIndex:0] valueForKey:@"City"] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
Первый журнал печатает штраф "é".
Во втором журнале он кодируется и печатается как "\ U00e9".
В третьем журнале он декодируется и печатается как «é» (именно это я и искал).