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

转自:http://hi.baidu.com/%CB%E6%B7%E7_1989/blog/item/087dfaf724592249342acc1e.html


今天用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)