質問

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ドキュメントに確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top