Frage

Ich habe versucht, die Antwortdaten von Google Wetter api zu lesen, aber Deutsch Umlaute nicht richtig dargestellt. Statt "ö" I "^" erhalten.

Ich denke, das Problem sind die zwei Codezeilen:

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

Wie kann ich Daten erhalten aus Result ohne String?

PS: Ich benutze TouchXML parsen xml

War es hilfreich?

Lösung

Sie müssen eine NSURLConnection verwenden Ihre Daten zu erhalten, nehme ich an. Wenn Sie die Daten erhalten, können Sie es zu einem NSString mit entsprechender Codierung konvertieren. Z.B.

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

}

Hier XMLResponse ist der NSMutableString, dass Sie Ihren Parser passieren können. Ich habe NSISOLatin1 Codierung verwendet. Sie können andere Arten überprüfen zu codieren und zu sehen, was Sie die Zeichen gibt richtig (NSUTF8StringEncoding sollte es tun nehme ich an) .Sie können für eine Liste der unterstützten Kodierungen die API doc überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top