我试图从谷歌天气api读取响应数据,但德语变音符号没有正确显示。而不是“ö”,我得到“^”。
我认为问题在于这两行代码:
CXMLElement *resultElement = [nodes objectAtIndex:0];
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
如何在没有stringValue的情况下从resultElement中获取数据?
PS:我使用TouchXML来解析xml
答案 0 :(得分: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。我使用过NSISOLatin1编码。你可以检查其他类型的编码,看看是什么给你正确的字符(NSUTF8StringEncoding我应该这样做)。你可以查看API文档以获得支持的编码列表。