在 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];
//
此处为编码以前的文字