2015-04-01 29 views
14

Tôi cần gửi URL bằng ngôn ngữ tiếng Ả Rập, vì vậy tôi cần mã hóa URL trước khi tôi đặt URL đó vào URL. Tôi đang sử dụng mã Swift.url mã hóa sử dụng mã nhanh

Dưới đây là một ví dụ những gì tôi thực sự cần

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

let url = NSURL(string : s) 

Vì vậy, các từ (السلام عليكم) là nhân vật trong tiếng Ả Rập rằng những gì tôi muốn gửi.

+0

http://stackoverflow.com/a/28734595/2303865 –

+0

bạn đã nhận được câu trả lời? – Jan

Trả lời

0

bạn phải Mã hóa URL này trước khi gửi URL này

6

Bạn cần mã hóa url như bạn đã viết. Bạn có thể làm như vậy với phương pháp chuỗi:

stringByAddingPercentEscapesUsingEncoding(NSStringEncoding) 

Vì vậy, mã của bạn sẽ là:

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

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) 
+3

Swift 3 nên là: let urlwithPercentEscapes = myurlstring.addingPercentEncoding (withAllowedCharacters: NSCharacterSet.urlQueryAllowed) không có dấu ngoặc đơn sau NSCharacterSet.urlQueryAllowed vì nó là thuộc tính không phải là một hàm. – Benjamin

7

Để cải thiện @Druva's answer tạo ra một gia hạn ở đâu đó trong các dự án

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 
     } 

    } 
0

Bạn cần mã hóa chuỗi này vì nó chứa các ký tự đặc biệt.

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

nơi encodedURL là URL cuối cùng của bạn