0

我试图从谷歌天气 api 读取响应数据,但德语变音符号未正确显示。而不是“ö”我得到“^”。

我认为问题在于这两行代码:

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

如何在没有 stringValue 的情况下从 resultElement 中获取数据?

PS:我使用TouchXML来解析xml

4

1 回答 1

2

我想你必须使用 NSURLConnection 来获取你的数据。当您收到数据时,您可以使用适当的编码将其转换为 NSString。例如

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

}

这里 xmlResponse 是您可以传递给解析器的 NSMutableString。我使用了 NISOLatin1 编码。您可以检查其他类型的编码,看看是什么给了您正确的字符(我想 NSUTF8StringEncoding 应该这样做)。您可以检查 API 文档以获取支持的编码列表。

于 2010-05-27T21:54:48.133 回答