0

KML クエリで Google マップを使用しています。しかし、私のクエリ文字列は "日本語" 文字列 "マクドナルド" ですhttp://maps.google.co.jpを使用しています。データを要求すると、「0」バイトが返されます。しかし、ブラウザーに入力したときと同じクエリで、KML ファイルをダウンロードします。私のコードは次のとおりです。

query = [NSString stringWithFormat:@"http://maps.google.co.jp/maps?&near=%f,%f&q=マクドナルド&output=kml&num=%d", lat,lon, num];

NSURL* url = [NSURL URLWithString:クエリ]; NSURLRequest* request = [NSURLRequest requestWithURL:url]; NSLog(@"クエリ URL = %@", url);

NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] autorelease];
NSData *myData = [NSURLConnection sendSynchronousRequest:request returningResponse: &response error: nil ];
NSInteger errorcode = [response statusCode];

「myData」を 0 バイトで受信しています。なぜ?

4

1 に答える 1

0

日本語のテキストをURLエンコードする必要があります。ブラウザは通常、テキストを自動的にエンコードしますが、NSURLはエンコードしません。

次のようなものを試してください

NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
    NULL,
    (CFStringRef)unencodedString,
    NULL,
    (CFStringRef)@"!*'();:@&=+$,/?%#[]",
    kCFStringEncodingUTF8 );
于 2010-05-21T03:08:31.300 に答える