2008-09-23 8 views
331

मेरे पास HTML वर्ण इकाइयों के साथ एन्कोड किए गए ईमेल पते हैं। क्या .NET में कुछ भी है जो उन्हें सादे तारों में परिवर्तित कर सकता है?मैं सी # में एचटीएमएल अक्षरों को कैसे डीकोड कर सकता हूं?

उत्तर

531

आप आप नेट 4.0+ आप भी WebUtility.HtmlDecode के रूप में यह System.Net नाम स्थान में उपलब्ध है जो एक अतिरिक्त विधानसभा संदर्भ की आवश्यकता नहीं है का उपयोग कर सकते उपयोग कर रहे हैं HttpUtility.HtmlDecode

उपयोग कर सकते हैं।

+1

यह सिस्टम.Web में होना चाहिए, लेकिन यह नहीं है। मैंने एक वर्ष के लिए सी # को छुआ नहीं है, अगर मैं इससे थोड़ा निराश हो जाता हूं तो मैं उन्हें मैन्युअल रूप से बदल दूंगा। – Vasil

+1

यह System.Web –

+0

के .NET 2.0 संस्करण में है, मैं बिल्कुल 2.0 का उपयोग कर रहा हूं, लेकिन मैं एक कंसोल ऐप लिख रहा हूं। – Vasil

6

HTML इकाइयों को डीकोड करने के लिए Server.HtmlDecode का उपयोग करें। यदि आप से बचें एचटीएमएल, यानी < और > उपयोगकर्ता को चरित्र प्रदर्शित करें, तो Server.HtmlEncode का उपयोग करें।

+4

एक सर्वर संदर्भ नहीं हो सकता है (यानी जब परीक्षण मामलों चल रहा है और की तरह) मैं इस के लिए में गिर गई पहले जाल :) –

15

यदि कोई सर्वर संदर्भ नहीं है (यानी आपका ऑफ़लाइन चल रहा है), तो आप HttpUtility का उपयोग कर सकते हैं। HtmlDecode

+1

सहमत हैं, यही कारण है कि मैं HttpUtility का उपयोग करता हूं, एक ही जाल में गिर गया = पी –

41

जैसा कि @CQ कहते हैं, आपको HttpUtility.HtmlDecode का उपयोग करने की आवश्यकता है, लेकिन यह डिफ़ॉल्ट रूप से गैर-एएसपी .NET प्रोजेक्ट में उपलब्ध नहीं है।

गैर-एएसपी .NET अनुप्रयोग के लिए, आपको System.Web.dll पर संदर्भ जोड़ने की आवश्यकता है। समाधान एक्सप्लोरर में अपनी प्रोजेक्ट पर राइट-क्लिक करें, "संदर्भ जोड़ें" का चयन करें, फिर System.Web.dll के लिए सूची ब्राउज़ करें।

अब जब कि संदर्भ जोड़ दिया जाता है, तो आप चीजों को आसान बनाने के लिए System.Web के लिए पूरी तरह से योग्य नाम System.Web.HttpUtility.HtmlDecode का उपयोग कर विधि का उपयोग या एक using बयान डालने के लिए सक्षम होना चाहिए।

170

नेट 4.0 पर:

System.Net.WebUtility.HtmlDecode() 

एक सी # परियोजना

+5

यह बेहतर समाधान है क्योंकि HttpUtility "'" प्रतीक को डीकोड नहीं करता है .. मुझे नहीं पता क्यों .. – RredCat

+0

यह सार्वभौमिक विंडोज़ के विकास में आवश्यक है मंच। – matthewsheets

4

यह भी उल्लेख है कि यदि आप HtmlAgilityPack का उपयोग कर रहे है कि मैं था, तो आप HtmlAgilityPack.HtmlEntity.DeEntitize() का उपयोग करना चाहिए लायक है के लिए विधानसभा को शामिल करने की आवश्यकता नहीं है। यह string लेता है और string देता है।

1

को डिकोड करने के लिए एचटीएमएल कोड के नीचे एक नज़र रखना

string s = "Svendborg V&#230;rft A/S"; 
string a = HttpUtility.HtmlDecode(s).ToString(); 
Response.Write(a); 

आउटपुट है

तरह
Svendborg Værft A/S 
+0

'ToString()' अनावश्यक है क्योंकि HtmlDecode एक स्ट्रिंग देता है – Justin

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

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