在 NSURLRequest 上编码 '+' 字符

encoding '+' character on a NSURLRequest

我正在加载带有外部 url 和 post 数据的 webView。

一切正常,除非数据包含“+”字符,否则失败。 我试图以不同的方式对数据进行编码,但我无法使其工作。 如何正确编码加号字符?

-(void) cargarWebViewTPVRedys:(TPVRedsys*) redsys{

    NSURL *url = [NSURL URLWithString: @"https://sis-t.redsys.es:25443/sis/realizarPago"]; // PRUEBAS
    // NSURL *url = [NSURL URLWithString: @"https://sis.redsys.es/sis/realizarPago"];     // REAL
    NSString *body = [NSString stringWithFormat: @"DS_SIGNATURE=%@&DS_MERCHANTPARAMETERS=%@&DS_SIGNATUREVERSION=%@",redsys.Ds_Signature,redsys.Ds_MerchantParameters,redsys.Ds_SignatureVersion];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
    [request setHTTPMethod: @"POST"];
    //[request setHTTPBody: [body dataUsingEncoding: NSUnicodeStringEncoding]];
    //[request setHTTPBody: [body dataUsingEncoding: NSASCIIStringEncoding]];
    [request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:false]];
    NSLog(redsys.Ds_Signature);
    NSLog(redsys.Ds_MerchantParameters);
    NSLog(redsys.Ds_SignatureVersion);

    [self.webView loadRequest:request];
}

似乎将“+”字符替换为其十六进制值

NSString *body = [body2 stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];