Skip to main content
 首页 » 编程设计

ios之Swift 参数中的 POST 需要符号 "&"

2024年01月01日199me-sa

我正在发帖,其中一个参数中包含必需的“&”。我已经为 & 和 NSUTF8StringEncoding 以及 stringByAddingPercentEscapesUsingEncodqing(NSUTF8StringEncoding) 尝试了 %26。仍然无法正常工作。

let params = "designers=dolce%26gabbana"     
let nStr = params.stringByAddingPercentEscapesUsingEncodqing(NSUTF8StringEncoding) 
let postData = nStr?.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) 
request.HTTPBody = postData 

我发布的字符串是“Dolce & Gabbana”,服务器只用“&”识别它。

谢谢!

请您参考如下方法:

您应该尝试使用 CFURLCreateStringByAddingPercentEscapes 因为 stringByAddingPercentEscapesUsingEncodqing 不会转义所有字符。通过使用 CFURLCreateStringByAddingPercentEscapes,您可以选择要转义的字符。

例子:

var encodedStr = CFURLCreateStringByAddingPercentEscapes( 
    nil, 
    "Dolce & Gabbana", 
    nil, 
    "&", //you can add another special characters 
    CFStringBuiltInEncodings.UTF8.rawValue 
) 

Here is another SO question关于这个主题(在 Objective-C 中)