我需要用阿拉伯語發送一個URL,所以我需要在將它放入URL之前進行編碼。我正在使用Swift代碼。使用swift代碼編碼網址
下面是一個例子我真正需要的
var s = "www.example.com/السلام عليكم"
let url = NSURL(string : s)
所以字(السلامعليكم)是什麼我想給阿拉伯字符。
我需要用阿拉伯語發送一個URL,所以我需要在將它放入URL之前進行編碼。我正在使用Swift代碼。使用swift代碼編碼網址
下面是一個例子我真正需要的
var s = "www.example.com/السلام عليكم"
let url = NSURL(string : s)
所以字(السلامعليكم)是什麼我想給阿拉伯字符。
您發送該URL
你需要爲你寫編碼網址前編碼這個URL。你可以用字符串的方法做到這一點:
stringByAddingPercentEscapesUsingEncoding(NSStringEncoding)
所以,你的代碼將是:
var s = "www.example.com/السلام عليكم"
// you may add check before force unwrapping
let url = NSURL(string : s.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
雨燕2.0
let urlwithPercentEscapes = myurlstring.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
雨燕3.0
let urlwithPercentEscapes = myurlstring.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed())
雨燕3.1
let urlwithPercentEscapes = myurlstring.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
Swift 3應該是:讓urlwithPercentEscapes = myurlstring.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)在NSCharacterSet.urlQueryAllowed之後沒有圓括號,因爲它是一個屬性而不是函數。 – Benjamin 2016-11-04 09:39:44
爲了提高@Druva's answer 項目
斯威夫特的地方創建一個推廣2.0
extension String
{
func encodeUrl() -> String
{
return self.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
}
func decodeUrl() -> String
{
return self.stringByRemovingPercentEncoding
}
}
雨燕3.0
extension String
{
func encodeUrl() -> String
{
return self.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed())
}
func decodeUrl() -> String
{
return self.stringByRemovingPercentEncoding
}
}
您需要對此字符串進行編碼,因爲它包含特殊字符。
var s = "www.example.com/السلام عليكم"
let encodedLink = s.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)
let encodedURL = NSURL(string: encodedLink!)! as URL
其中encodedURL是您的最終網址
http://stackoverflow.com/a/28734595/2303865 – 2015-04-01 19:01:44
你得到的答案? – Jan 2016-10-12 05:22:04