转自: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];
本文讨论了在使用NSURLConnectionPost上传时遇到的特殊符号替换问题,并提供了解决方案,通过先进行UTF8编码来避免符号被替换。
3854

被折叠的 条评论
为什么被折叠?



