【发布时间】:2017-06-26 07:40:15
【问题描述】:
在带有 Xcode 9 beta 2 的 Swift 3.x 中,使用 addingPercentEncoding 会产生意想不到的结果。 CharacterSet.urlPathAllowed 总是包含“:”,所以根据addingPercentEncoding 的定义,它永远不应该转义它。然而,使用这段代码:
// always true
print(CharacterSet.urlPathAllowed.contains(":"))
let myString = "info:hello world"
let escapedString = myString.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!
print(escapedString)
我得到了这些结果:
出现不良行为的情况
- Xcode 9 beta 2,iOS 9.3
- Xcode 9 测试版 2,iOS 11.0
是的
info%3Ahello%20world
我得到预期行为的情况
- Xcode 9 beta 2,iOS 10.3.1
- Xcode 8.3.3,任何 iOS
是的
信息:你好%20world
是否有任何解决方法来获得addingPercentEncoding 的有效实现,以正确尊重给定的allowedCharacters?
【问题讨论】:
标签: ios swift urlencode xcode9-beta