我正在发帖,其中一个参数中包含必需的“&”。我已经为 & 和 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 中)
