encoding url using swift code

后端 未结 6 1189
野性不改
野性不改 2021-02-12 21:03

I need to send an URL in Arabic language, so I need to encode it before I put it in URL. I am using Swift code.

Below is an example what i really need

va         


        
相关标签:
6条回答
  • 2021-02-12 21:32

    swift 4 we face the same problem it solved by this way

    extension String { 
    var fixedArabicURL: String?  {
           return self.addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics
               .union(CharacterSet.urlPathAllowed)
               .union(CharacterSet.urlHostAllowed))
       } }
    
    0 讨论(0)
  • 2021-02-12 21:40

    Swift 2.0

    let urlwithPercentEscapes = myurlstring.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())
    

    Swift 3

    let urlwithPercentEscapes = myurlstring.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
    
    0 讨论(0)
  • 2021-02-12 21:43

    To improve @Druva's answer create an extention somewhere in the project

    Swift 2.0

    extension String
    {   
        func encodeUrl() -> String
        {
            return self.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())
        }
    func decodeUrl() -> String
        {
            return self.stringByRemovingPercentEncoding
        }
    
    }
    

    Swift 3.0

     extension String
        {   
            func encodeUrl() -> String
            {
                return self.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
            }
        func decodeUrl() -> String
            {
                return self.stringByRemovingPercentEncoding
            }
    
        }
    
    0 讨论(0)
  • 2021-02-12 21:45

    You need to encode this string as it contains special characters.

    var s = "www.example.com/السلام عليكم"
    let encodedLink = s.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)
    let encodedURL = NSURL(string: encodedLink!)! as URL
    

    where encodedURL is your final URL

    0 讨论(0)
  • 2021-02-12 21:47

    you have to Encode this URL before sending this URL

    0 讨论(0)
  • 2021-02-12 21:56

    You need to encode url as you have written. You can do so with that string method:

    stringByAddingPercentEscapesUsingEncoding(NSStringEncoding)
    

    So your code will be:

    var s = "www.example.com/السلام عليكم"
    // you may add check before force unwrapping
    let url = NSURL(string : s.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
    
    0 讨论(0)
提交回复
热议问题