gpt4 book ai didi

swift - 在 swift 2.3 中使用 "parameters.dataUsingEncoding(NSUTF8StringEncoding)"编码时如何避免 + 号被空格替换

转载 作者:行者123 更新时间:2023-11-28 15:57:39 27 4
gpt4 key购买 nike

我正在使用 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);

最佳答案

加号 (+) 是空格的标准快捷方式,编码前必须将 + 替换为 %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);

如果它对您没有帮助,您也可以对其进行 url 编码

Parameters = Parameters.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!

然后用 %2d 替换 (+) 符号,然后使用 dataUsingEncoding 对其进行编码希望对你有帮助

关于swift - 在 swift 2.3 中使用 "parameters.dataUsingEncoding(NSUTF8StringEncoding)"编码时如何避免 + 号被空格替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com