转自:http://hi.baidu.com/%CB%E6%B7%E7_1989/blog/item/087dfaf724592249342acc1e.html
今天用NSURLConnection Post上传的时候发现一个特奇怪的问题,只要是+号都会替换成空格,例如"google+"就会变成"google ",代码如下:
NSString*bodyStr =@"google+";
[urlRequestsetHTTPBody:[bodyStrdataUsingEncoding:NSUTF8StringEncoding]];
//NSUTF8StringEncoding编码是为了防止中文上传的时候出错。
查些资料发现只要这些特殊符号在转之前做一次UTF8编码就可以解决这个问题了,代码如下:
NSString*bodyStr =@"google+";
NSString*bStr =CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)bodyStr,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="),
kCFStringEncodingUTF8);
[urlRequest setHTTPBody:[bStrdataUsingEncoding:NSUTF8StringEncoding]];
[bStr release];