iPhone谷歌地图KML搜索

问题描述:

我正在使用带有KML查询的Google地图。但我的查询字符串是“日语”字符串“マクドナルド”我使用http://maps.google.co.jp 请求数据时,我得到“0”字节。但是,当我把它放入浏览器时,同样的查询,它下载一个KML文件。我的代码如下:iPhone谷歌地图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:query]; NSURLRequest * request = [NSURLRequest requestWithURL:url]; NSLog(@“Quering URL =%@”,url);

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

我收到0字节的“myData”。为什么?

您需要对日文文本进行URL编码。浏览器通常会自动为您编码文本,但NSURL不会。

尝试像

NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
    NULL, 
    (CFStringRef)unencodedString, 
    NULL, 
    (CFStringRef)@"!*'();:@&=+$,/?%#[]", 
    kCFStringEncodingUTF8);