在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的http://unmi.cc?p1=%+&sd f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问。
方法stringByAddingPercentEscapesUsingEncoding它分不出哪个&是参数的连接符号还是参数值,不会转换URL中的 ?%& 符号。
解决的方法如下:
(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)string,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8);
转义字符解码:
char*CSString="%E5%96%BB%E9%98%B3%E6%96%87";
[CSString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//此处为编码以前的文字