base64编码问题 需要对每个参数URL编码

- (NSString *)encodeToPercentEscapeString: (NSString *) input
{
    // Encode all the reserved characters, per RFC 3986
    // (<http://www.ietf.org/rfc/rfc3986.txt>)
    NSString *outputStr = (NSString *)
    CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                            (CFStringRef)input,
                                            NULL,
                                            (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                            kCFStringEncodingUTF8);
    return outputStr;
}

- (NSString *)decodeFromPercentEscapeString: (NSString *) input
{
    NSMutableString *outputStr = [NSMutableString stringWithString:input];
    [outputStr replaceOccurrencesOfString:@"+"
                               withString:@" "
                                  options:NSLiteralSearch
                                    range:NSMakeRange(0, [outputStr length])];
    
    return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
 NSString *aa = [self encodeToPercentEscapeString:@"测试测试"];
    NSString *bb = [self encodeToPercentEscapeString:@"7.88"];
    NSString *postStr  =[NSString stringWithFormat:@"orderDesc=%@&orderAmt=%@",aa,bb];
    NSString  *base64Str= [GTMBase64 encodeBase64String:postStr];
原文地址:https://www.cnblogs.com/jiackyan/p/3397031.html