用NSURLConnection Post上传数据的特殊字符处理

 用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];

你可能感兴趣的:(Google,null)