0

Google Weather APIから応答データを読み取ろうとしましたが、ドイツ語のウムラウトが正しく表示されません。「ö」の代わりに「^」を取得します。

問題は、次の2行のコードだと思います。

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です。NSISOLatin1エンコーディングを使用しました。他の種類のエンコーディングをチェックして、文字が正しく表示されるものを確認できます(NSUTF8StringEncodingがそれを実行するはずです)。サポートされているエンコーディングのリストについては、APIドキュメントをチェックしてください。

于 2010-05-27T21:54:48.133 に答える