POST所需的&符号"&"在Swift的参数中

时间:2015-04-17 22:27:29

标签: ios swift post ampersand

我正在发布一个带有“&”的帖子在其中一个参数中。我已使用%26以及NSUTF8StringEncoding尝试stringByAddingPercentEscapesUsingEncodqing(NSUTF8StringEncoding) & 。不行。

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

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

谢谢!

1 个答案:

答案 0 :(得分:3)

您应该尝试使用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中)