Así que estoy ir a buscar una cadena JSON desde un script php en mi aplicación para el iPhone usando:Problema de codificación: Cocoa Error 261?
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);
La cadena JSON valida cuando pruebo la salida. Ahora estoy teniendo un problema de codificación. Cuando voy a buscar una sola línea echo'd tales como:
{ "testKey":"é" }
El analizador JSON funciona bien y soy capaz de crear un objeto JSON válida. Sin embargo, cuando voy a buscar mi cadena JSON 2MB, consigo presentado con:
Error: Operation could not be completed. (Cocoa error 261.)
y una cadena nula. Mi archivo PHP es UTF8 en sí y no estoy usando utf8_encode() porque parece codificar doblemente los datos ya que ya estoy extrayendo los datos como NSUTF8StringEncoding. De cualquier manera, en mi prueba de eco único, es el enfoque que me permitió registrar con éxito el estilo \ ASDAS UTF8 escapa al construir el objeto JSON.
¿Qué podría estar causando el error en el caso de la cadena más grande?
Además, no estoy seguro de si hace la diferencia, pero estoy usando la función php addslashes() en mis datos php analizados para contabilizar las comillas y cosas así al compilar la cadena JSON.
También puede ser útil para examinar el tipo de codificación de archivo. Usé Text Wrangler para hacer esto. Abra el archivo y en la parte inferior de la ventana se mostrará qué tipo de codificación es. Necesitaba UTF16 pero hay muchas variaciones. – TigerCoding