Итак, я извлекаю строку JSON из php script в моем приложении 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. Однако, когда я получаю строку 2MB JSON, я получаю:
Error: Operation could not be completed. (Cocoa error 261.)
и строку Null. Мой PHP файл - это сам UTF8, и я не использую utf8_encode(), потому что, похоже, он дважды кодирует данные, так как я уже вынимаю данные как NSUTF8StringEncoding. В любом случае, в моем тесте с одним эхом, это подход, который позволил мне успешно log\ASDAS стиль UTF8 побегов при создании объекта JSON.
Что может вызвать ошибку в случае большей строки?
Кроме того, я не уверен, что это имеет значение, но я использую php function addslashes() для моих проанализированных php-данных для учета кавычек и т.д. при построении строки JSON.