我正在发布一个带有“&”的帖子在其中一个参数中。我已使用%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”,服务器只能用“&”识别它。
谢谢!
答案 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中)