我需要对POST请求的正文进行编码,但我不知道该使用哪一个。我在把"("转换成"28"时遇到了麻烦。到目前为止,我正在使用NSUTF8StringEncoding, NSISOLatin1StringEncoding, NSISOLatin2StringEncoding。没有一个是有效的。
我要发送的参数的名称是:
monitoring_report[monitoring_report_time(1i)]=
应该转换为:
monitoring_report%5monitoring_report_time%281i%29%5D=
,我得到的是:
monitoring_report%5Bmonitoring_report_time(1i)%5D=
使用具有legalURLCharactersToBeEscaped
参数的Core Foundation函数CFURLCreateStringByAddingPercentEscapes
。url中的括号是合法的,这就是为什么默认情况下它们不被转义的原因。
的例子:
NSString *input = @"monitoring_report[monitoring_report_time(1i)]=";
NSString *output = [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)input, NULL, CFSTR("()"), kCFStringEncodingUTF8) autorelease];
NSLog(@"%@", output); // monitoring_report%5Bmonitoring_report_time%281i%29%5D=