2011-03-22 16 views
10

में यूआरएल एस्केप/अनस्केप फ़ंक्शंस मैं मोनो टच में यूआरएल से बचने और अनदेखा कार्यों की तलाश में हूं। अनिवार्य रूप से मैं विधि stringByReplacingPercentEscapesUsingEncoding की MonoTouch बराबर रहा हूँ, उद्देश्य-सी कोड का पालन लाइन में के रूप में:मोनो टच

NSString *args = [(NSString*)[components objectAtIndex:3] 
        stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

मैं कुछ इस तरह करने के लिए इस का अनुवाद करने में सक्षम होने के लिए उम्मीद कर रहा था:

string args = URL.Unescape(components[3]); 

क्या मोनो टच में यूआरएल से बचने/अनसुलझा कार्य मौजूद हैं या क्या मुझे अपना खुद का रोल करना है?

उत्तर

19
System.Web.HttpUtility.UrlDecode (string s); 

जो मोनोटच में System.Web.Services.dll में है।

+0

क्या आपने कोशिश की? यह मेरे मोनो डेवलपमेंट में दिखाई नहीं देता है। – jonathanpeppers

+0

मुझे मोनो डेवलपमेंट में _System.Net_ के अंतर्गत नेमस्पेस _HttpUtility_ नहीं दिखाई देता है। – BruceHill

+0

मेरा संपादित उत्तर देखें। – jonathanpeppers

1

यह मोनो टच के साथ शामिल नेट फ्रेमवर्क के संस्करण में मौजूद नहीं है।

मेरा मानना ​​है कि मुझे Google Code here से इसका स्रोत मिला है।

आप इसके लिए लाइसेंस देखना चाहते हैं, मैंने इसे एक निजी आईफोन ऐप के लिए इस्तेमाल किया।

+1

धन्यवाद, जोनाथन। यह बहुत बढ़िया बात है। कोड के शीर्ष पर संदेश से ऐसा लगता है कि यह कोड खुला स्रोत है। यही वह चीज है जिसकी मुझे जरूरत थी। एक बार फिर धन्यवाद। – BruceHill

+3

यह निश्चित रूप से मोनोचच में है, मुझे पता है क्योंकि मैंने इसे वहां रखा है, लेकिन मैं भूल गया कि हमारे पास System.dll में एक आंतरिक है, सार्वजनिक सिस्टम System.Web.Services में है। –

+0

मुझे खुशी है कि यह वहां है, मैंने आज निश्चित रूप से कुछ सीखा। – jonathanpeppers

1

उत्तर के अलावा, स्प्लिट पैरामीटर पैरामीटर स्प्लिट ('&', '=') है; अभिव्यक्ति सबसे पहले & द्वारा विभाजित तो '=' तो अजीब तत्वों सभी मूल्यों एन्कोड करने की नीचे दिखाया गया है।

public static void EncodedQueryString(ref string queryString) 
    { 
     var array=queryString.Split('&','='); 
     for (int i = 0; i < array.Length; i++) { 
      string part=array[i]; 
      if(i%2==1) 
      {    
       part=System.Web.HttpUtility.UrlEncode(array[i]); 
       queryString=queryString.Replace(array[i],part); 
      } 
     } 
    } 

आपको आम तौर पर केवल मूल्यों को एन्कोड करना चाहिए।

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