2015-04-01 10 views
14

का उपयोग कर एन्कोडिंग यूआरएल मुझे अरबी भाषा में एक यूआरएल भेजने की जरूरत है, इसलिए मुझे इसे यूआरएल में रखने से पहले इसे एन्कोड करने की जरूरत है। मैं स्विफ्ट कोड का उपयोग कर रहा हूँ।स्विफ्ट कोड

नीचे क्या मैं सच में

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

let url = NSURL(string : s) 

तो शब्द (السلام عليكم) अरबी अक्षर है कि क्या मैं भेजना चाहते है की जरूरत है एक उदाहरण है।

+0

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

+0

आप इस सवाल का जवाब मिला? – Jan

उत्तर

6

आप यूआरएल एन्कोड करने के लिए के रूप में लिखा है आप की जरूरत है भेजने से पहले इस URL सांकेतिक शब्दों में बदलना करने के लिए है। आपको लगता है कि स्ट्रिंग विधि के साथ ऐसा कर सकते हैं:

stringByAddingPercentEscapesUsingEncoding(NSStringEncoding) 

तो अपने कोड होगा:

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

स्विफ्ट 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) 
+3

स्विफ्ट 3 होना चाहिए: urlwithPercentEscapes = myurlstring.addingPercentEncoding (AllowedCharacters: NSCharacterSet.urlQueryAllowed) NSCharacterSet.urlQuery के बाद ब्रांड्स के बिना अनुमति दें क्योंकि यह एक प्रॉपर्टी नहीं है। – Benjamin

7

@Druva's answer सुधार करने के लिए परियोजना

स्विफ्ट में कहीं एक extention बनाने 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 
     } 

    } 
0

आपको इस स्ट्रिंग को एन्कोड करने की आवश्यकता है क्योंकि इसमें विशेष वर्ण हैं।

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

जहां encodedURL आपका अंतिम URL है

संबंधित मुद्दे