質問
Google Weather APIの応答データを読み込もうとしましたが、ドイツのUmlautsは正しく表示されません。 「Ö」の代わりに、私は "^"を取得します。
問題は、これらの2行のコードだと思います。
CXMLElement *resultElement = [nodes objectAtIndex:0];
description = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
StringValueなしで結果からデータを削除するにはどうすればよいですか?
PS:TouchXMLを使用してXMLを解析します
解決
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ドキュメントに確認できます。
所属していません StackOverflow