Ios 如何编码''+';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值,因此可以键入任何内容 我也很

我想对url字符串中的
+
字符进行编码,我尝试了以下方法:

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)
}