最近项目需要调个接口,其中需要传入一个参数,关于时间的
NSString *startText=@"2014-01-01T00:00:00+0800";而这种在get请求中像:+都是不可以识别的,如果你直接拼接的话,肯定请求不过来,因此你需要进行编码。当时在百度上找了好久,也没有发现只有将汉字编码的方法。最终在stackoverflow上找到了一个自定义编码的方法,特来分享
NSString *startText=@"2014-01-01T00:00:00+0800";
NSString *startTimeStrEcode=[self encodeStr:startText];
#pragma mark 自定义编码
-(NSString *)encodeStr:(NSString *)str
{
// NSString *text=@"2014-12-12T00:00:00+0800";
NSString *escapedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
NULL,
(__bridge CFStringRef) str,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]\" "),
kCFStringEncodingUTF8));
return escapedString;
}
NSLog(@"starttest--%@--",startTimeStrEcode);
打印的为starttest--2014-01-01T00%3A00%3A00%2B0800--编码成功