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