Кодирование 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