我需要对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=
答案 0 :(得分:2)
使用具有CFURLCreateStringByAddingPercentEscapes
参数的Core Foundation函数legalURLCharactersToBeEscaped
。 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=