2011-06-29 7 views
7

संभव डुप्लिकेट:unescape सी # में एक भाग निकले यूआरएल

http://www.someurl.com/profile.php?mode=register&agreed=true 

मैं करने के लिए इसे परिवर्तित करना चाहते हैं:
How can I decode HTML characters in C#?

मैं यूआरएल जो इस रूप में बच गए है अनदेखा फॉर्म

http://www.someurl.com/profile.php?mode=register&agreed=true 

यह एस्केप एचटीएमएल जैसा ही है?

मैं यह कैसे कर सकता हूं?

धन्यवाद

+1

यूआरएल एन्कोडिंग एचटीएमएल एन्कोडिंग से बिल्कुल अलग है, क्योंकि इसे डुप्लिकेट चिह्नित किया गया है। फिर से खोलने के लिए ध्वजांकित। – Deestan

उत्तर

9

& एक HTML इकाई है और क्योंकि आप & HTML में एक विशेष अर्थ नहीं है कि "पलायन" के लिए है जब पाठ HTML में एन्कोड किया गया है प्रयोग किया जाता है। जाहिर है, यह बचपन तंत्र यूआरएल पर संभवतः इस्तेमाल किया गया था क्योंकि इसका उपयोग कुछ एचटीएमएल में उदाहरण के लिए एक लिंक में किया जाता है। मुझे यकीन नहीं है कि आप इसे डीकोड क्यों करना चाहते हैं क्योंकि लिंक क्लिक होने पर ब्राउज़र उचित डिकोडिंग करेगा। लेकिन वैसे भी, उसे वापस लाना आप HttpUtility.HtmlDecodeSystem.Web नाम स्थान में उपयोग कर सकते हैं:

var encoded = "http://www.someurl.com/profile.php?mode=register&agreed=true"; 
var decoded = HttpUtility.HtmlDecode(encoded); 

decoded का मान:

http://www.someurl.com/profile.php?mode=register&agreed=true 

एन्कोडिंग का दूसरा रूप/इस्तेमाल किया डिकोडिंग URL एन्कोडिंग है। इसका उपयोग यूआरएल के कुछ हिस्सों में विशेष पात्रों को शामिल करने में सक्षम होने के लिए किया जाता है। उदाहरण के लिए वर्ण /, ? और & का URL में एक विशेष अर्थ है। यदि आपको इनमें से कोई भी वर्ण एक क्वेरी पैरामीटर में शामिल करने की आवश्यकता है, तो आपको URL को गड़बड़ न करने के लिए पैरामीटर को एन्कोड करना होगा। यहाँ एक URL का एक उदाहरण है, जिसमें URL एस्केपिंग इस्तेमाल किया गया है:

http://www.someurl.com/profile.php?company=Barnes+%26+Noble 

कंपनी का नाम Barnes & NobleBarnes+%26+Noble के रूप में एन्कोड किया गया था। यदि & से बच नहीं गया था तो यूआरएल में एक नहीं बल्कि दो क्वेरी पैरामीटर होंगे क्योंकि & क्वेरी पैरामीटर के बीच एक डिलीमीटर के रूप में प्रयोग किया जाता है।

+0

यह एक विनफॉर्म एप्लिकेशन है। क्या यह .NET 2.0 में काम करेगा? मुझे एक त्रुटि मिल रही है 'HttpUtility' घोषित नहीं किया गया है ' – Smith

+0

@ स्मिथ: यहां .NET 2.0' HttpUtility' क्लास के लिए प्रलेखन है: http://msdn.microsoft.com/en-us/library/1e55w41w(v=VS .80) .aspx। क्या आपको 'System.Web.dll' का संदर्भ जोड़ना याद आया? –

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