Итак, я извлекаю строку JSON из php-скрипта в приложении для iPhone, используя:
NSURL *baseURL = [NSURL URLWithString:@"test.php"];
NSError *encodeError = [[NSError alloc] init];
NSString *jsonString = [NSString stringWithContentsOfURL:baseURL encoding:NSUTF8StringEncoding error:&encodeError];
NSLog(@"Error: %@", [encodeError localizedDescription]);
NSLog(@"STRING: %@", jsonString);
Строка JSON проверяется, когда я проверяю вывод. Теперь у меня проблема с кодировкой. Когда я получаю одну строку эха, такую как:
{ "testKey":"é" }
Парсер JSON работает нормально, и я могу создать действительный объект JSON. Тем не менее, когда я получаю 2-мегабайтную строку JSON, я получаю:
Error: Operation could not be completed. (Cocoa error 261.)
и пустая строка. Мой PHP-файл сам по себе является UTF8, и я не использую utf8_encode (), потому что кажется, что он дважды кодирует данные, поскольку я уже извлекаю данные как NSUTF8StringEncoding. В любом случае, в моем тесте с одиночным эхом, именно этот подход позволил мне успешно регистрировать экранирование в стиле \ ASDAS UTF8 при создании объекта JSON.
Что может быть причиной ошибки в случае большей строки?
Кроме того, я не уверен, имеет ли это значение, но я использую функцию php addlashes () в моих проанализированных данных php для учета кавычек и т. Д. При построении строки JSON.