iOS中URL的解码和转义问题

在iOS开发中,使用NSURLConnection去请求google places api时,如果请求的url中包含中文,则返回的结果为空,URL不能被google识别。

将url字符串转码一下,也不能识别。  这个问题其实是URL编码和解码问题。  
 NSString *string = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]


但是,在实际使用中,编码后的URL仍然可能会无效。因为URL的编码方式并不唯一。不同的编码方式下,有些字符不会被编码识别。
所以,客户端使用什么样的编码方式应该和服务器端的解码方式配对。

这是我的断点请求数据

iOS中URL的解码和转义问题_第1张图片

主要代码:

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

        produ.name = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];


你可能感兴趣的:(iOS中URL的解码和转义问题)