#06: URL/URI Escaping in Swift 3: Encoding and Decoding
The most straightforward way to escape URLs in Swift is to simply use one of the methods provided by NSString
from Foundation:
import Foundation
var original = "This/is a test"
var escaped = original.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
escaped! //This%2Fis%20a%20test
There are a few default CharacterSet
provided via static property to choose from, depending on the final destination of the encoded string:
Value | Set Characters |
---|---|
.urlFragmentAllowed | ”#%<>[]^`{|} |
.urlHostAllowed | ”#%/<>?@\^`{|} |
.urlPasswordAllowed | ”#%/:<>?@[]^`{|} |
.urlPathAllowed | ”#%;<>?[]^`{|} |
.urlQueryAllowed | ”#%<>[]^`{|} |
.urlUserAllowed | ”#%/:<>?@[]^` |
Additionally, if you have a different use case in mind with a custom set of characters to escape, you can create your own character set specifying all the characters you need in a string:
var myCharset= CharacterSet("#%&")
And then, use it with addingPercentEncoding
.
Did you like this article? Let me know on Twitter or subscribe for updates!