Кодирование url с использованием быстрого кода

Мне нужно отправить URL-адрес на арабском языке, поэтому мне нужно его закодировать, прежде чем поместить его в URL-адрес. Я использую код Swift.

Ниже приведен пример того, что мне действительно нужно

var s = "www.example.com/السلام عليكم"

let url = NSURL(string : s)

Итак, слово (السلام عليكم) написано арабскими буквами, что я хочу отправить.

Ответы

Ответ 1

Swift 2.0

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

Swift 3.0

let urlwithPercentEscapes = myurlstring.addingPercentEncoding( withAllowedCharacters: NSCharacterSet.urlQueryAllowed())

Swift 3.1

let urlwithPercentEscapes = myurlstring.addingPercentEncoding( withAllowedCharacters: NSCharacterSet.urlQueryAllowed)

Ответ 2

Чтобы улучшить ответ @Druva создать расширение где-нибудь в проекте

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: NSCharacterSet.urlQueryAllowed())
        }
    func decodeUrl() -> String
        {
            return self.stringByRemovingPercentEncoding
        }

    }

Ответ 3

Вам нужно закодировать url, как вы написали. Вы можете сделать это с помощью метода string:

stringByAddingPercentEscapesUsingEncoding(NSStringEncoding)

Итак, ваш код будет:

var s = "www.example.com/السلام عليكم"
// you may add check before force unwrapping
let url = NSURL(string : s.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)

Ответ 4

вам нужно Кодировать этот URL перед отправкой этого URL

Ответ 5

Вам нужно закодировать эту строку, поскольку она содержит специальные символы.

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

где encodedURL - ваш конечный URL