我正在使用NSMutableURLRequest
。在将参数发送到服务器时,我必须对其进行编码,因此我使用dataUsingEncoding(NSUTF8StringEncoding) Swift 2.3
对其进行编码,但它正在从字符串中删除+
符号。有没有其他方法可以做到这一点?
示例代码:
let URL = NSURL(string: urlString)
let urlRequest = NSMutableURLRequest(URL: URL!)
urlRequest.HTTPMethod = "POST"
urlRequest.addValue("application/x-www-form-urlencoded; charset=UTF-8", forHTTPHeaderField: "Content-Type")
urlRequest.HTTPBody = Parameters.dataUsingEncoding(NSUTF8StringEncoding);
答案 0 :(得分:1)
加号(+)是空格的标准快捷键,您必须在编码前将%替换为%2d。请查看this Doc for other signs
let URL = NSURL(string: urlString)
let urlRequest = NSMutableURLRequest(URL: URL!)
urlRequest.HTTPMethod = "POST"
urlRequest.addValue("application/x-www-form-urlencoded; charset=UTF-8", forHTTPHeaderField: "Content-Type")
Parameters = Parameters.stringByReplacingOccurrencesOfString("+", withString: "%2b")
urlRequest.HTTPBody = Parameters.dataUsingEncoding(NSUTF8StringEncoding);
如果它没有帮助你,你也可以对其进行网址编码
Parameters = Parameters.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
然后用%2d替换(+)符号,然后使用dataUsingEncoding
对其进行编码
希望它有所帮助