Swift - encode URL

后端 未结 17 2151
無奈伤痛
無奈伤痛 2020-11-21 22:20

If I encode a string like this:

var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

it does

17条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-21 22:44

    None of these answers worked for me. Our app was crashing when a url contained non-English characters.

     let unreserved = "-._~/?%$!:"
     let allowed = NSMutableCharacterSet.alphanumeric()
         allowed.addCharacters(in: unreserved)
    
     let escapedString = urlString.addingPercentEncoding(withAllowedCharacters: allowed as CharacterSet)
    

    Depending on the parameters of what you are trying to do, you may want to just create your own character set. The above allows for english characters, and -._~/?%$!:

提交回复
热议问题