Pregunta

Traté de leer los datos de respuesta del API de Google clima, pero diéresis alemanas no se muestran correctamente. En lugar de "ö" Me "^".

Creo que el problema son las dos líneas de código:

CXMLElement *resultElement = [nodes objectAtIndex:0];
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];

¿Cómo puedo obtener los datos de resultElement sin stringValue?

PS: Yo uso TouchXML a analizar XML

¿Fue útil?

Solución

Debe utilizar un NSURLConnection para obtener sus datos, supongo. Cuando reciba los datos se puede convertir a un NSString utilizando codificación adecuada. P.ej.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    if(xmlResponse == nil){
        xmlResponse = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding]; 
    }
    else{
        NSMutableString *temp = [[NSMutableString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
        [xmlResponse appendString:temp];
        [temp release];
    }

}

Aquí xmlResponse es la NSMutableString que se puede pasar a su analizador. He utilizado NSISOLatin1 codificación. Puede comprobar otros tipos de codificación y ver lo que le da los caracteres correctamente (NSUTF8StringEncoding debe hacerlo supongo) Usted puede comprobar la documentación del API para obtener una lista de codificaciones soportadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top