Ios 如何编码''+';url字符串中的字符?
我想对url字符串中的Ios 如何编码''+';url字符串中的字符?,ios,swift,url,swift3,Ios,Swift,Url,Swift3,我想对url字符串中的+字符进行编码,我尝试了以下方法: let urlString = "www.google.com?type=c++" let result = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) 但这对+不起作用 有什么想法吗?谢谢 更新: 此外,url中的type=参数是动态的,我不会对+字符进行隐式替换。此type=参数表示UITextField值,因此可以键入任何内容 我也很
+
字符进行编码,我尝试了以下方法:
let urlString = "www.google.com?type=c++"
let result = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
但这对+
不起作用
有什么想法吗?谢谢
更新:
此外,url中的type=
参数是动态的,我不会对+
字符进行隐式替换。此type=
参数表示UITextField值,因此可以键入任何内容
我也很好奇为什么添加百分比编码(使用允许的字符:.urlQueryLowed)
在这种特殊情况下不起作用?将+替换为%2B
let urlString = "www.google.com?type=c++"
let newUrlString = aString.replacingOccurrences(of: "+", with: "%2B")
输出:
www.google.com%3Ftype%3Dc%2B%2B
你能使用urlString.replaceoccources(of:“+”,with:”)吗?请检查。请阅读更新。我不会在这种情况下替换字符。它不会起作用,因为
+
是url查询字符串的完全有效字符,它是url编码的版本的[space]
。好的,谢谢你的回答:)你的方法是我最不想做的事情是的,你的方法足够好(不理想),但我很好奇为什么添加百分比编码(使用允许的字符:.urlQueryLowed)
不起作用……这是我无法回答的问题,他们可能出于某种原因没有添加+
。
let allowedCharacterSet = CharacterSet(charactersIn: "!*'();:@&=+$,/?%#[] ").inverted
if let escapedString = "www.google.com?type=c++".addingPercentEncoding(withAllowedCharacters: allowedCharacterSet) {
print(escapedString)
}