Question

J'ai essayé de lire les données de réponse de api météo google, mais les trémas allemands ne sont pas affichés correctement. Au lieu de "ö" Je reçois "^".

Je pense que le problème sont ces deux lignes de code:

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

Comment puis-je obtenir des données sur resultElement sans stringValue?

PS: J'utilise TouchXML pour analyser xml

Était-ce utile?

La solution

Vous devez utiliser un NSURLConnection pour obtenir vos données, je suppose. Lorsque vous recevez les données que vous pouvez convertir en un NSString en utilisant le codage approprié. Par exemple.

- (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];
    }

}

Ici xmlResponse est le NSMutableString que vous pouvez transmettre à votre analyseur. Je l'ai utilisé le codage NSISOLatin1. Vous pouvez vérifier d'autres types de codage et de voir ce que vous donne les caractères correctement (NSUTF8StringEncoding devrait le faire, je suppose) .Vous pouvez vérifier la doc API pour une liste des codages pris en charge.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top