Chenglu Chenglu - 1 year ago 83
Swift Question

Swift: string url encoding not working as expected

So I have a url like this:

let remoetURL = " RULE.pdf"

As you can see, at then end of the url, there is a white space, so I need to get rid of it to have a valid encoded url.

After doing some research, I realized I might use

let escapedString = remoteURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPathAllowedCharacterSet())

But this does not returned the expected working url, because it encodes the ":" after "http" too


I have also tried URLHostAllowedCharacterSet, but no luck. So I wonder if it is because I don't have www here, so it does not recognise which part is the host correctly. If so, what might be the elegant solution? I know I could replace white spaces with %20 by calling stringByReplacingOccurrencesOfString, but that seems just a bit fragile.

Thank you in advance.

Answer Source

try this used by SwiftyJSON

let url = remoetURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download