2011-12-01 15 views
16

मैं कुछ फ़ंक्शन ढूंढ रहा हूं जो HTML इकाइयों की एक अच्छी मात्रा को डीकोड करेगा।सभी HTML इकाइयों को डीकोड करना

कारण मैं HTML सामग्री लेने के लिए कुछ कोड पर काम कर रहा हूँ और यह सादे पाठ में तब्दील हो गया है, इस मुद्दे को मेरे पास है कि संस्थाओं का एक बहुत नहीं प्राप्त HttpUtility.HtmlDecode का उपयोग कर परिवर्तित करना है।

उन संस्थाओं के कुछ उदाहरण जिनके बारे में मैं चिंतित हूं & nbsp ;, & amp ;, & प्रतिलिपि;

यह .net 3.5 के लिए है।

+0

मैं 3.5 और इस्तेमाल किया 'Console.WriteLine (HttpUtility.HtmlDecode ("  , &, © ")) .NET में स्विच;' और यह मेरे लिए ठीक काम किया। मैं समझ नहीं पा रहा हूं कि आपको परेशानी क्यों होगी। क्या आपके पास एक अजीब स्ट्रिंग एन्कोडिंग या कुछ है? –

उत्तर

19

मिलता तो हो सकता है आप HttpUtility की आवश्यकता होगी। HtmlDecode ?. यह काम करना चाहिए, आपको बस System.Web का संदर्भ जोड़ने की आवश्यकता है। कम से कम इस .Net Framework < 4.

उदाहरण के लिए निम्नलिखित कोड में जिस तरह से किया गया था:

MessageBox.Show(HttpUtility.HtmlDecode("&amp;&copy;")); 

काम किया और आउटपुट के रूप में की उम्मीद (एम्परसेंड और कॉपीराइट प्रतीक) था। क्या आप सुनिश्चित हैं कि समस्या HtmlDecode के भीतर है और कुछ और नहीं है?

अद्यतन: नौकरी करने में सक्षम एक और वर्ग, वेबयूटीलिटी (फिर एचटीएमएलडीकोड विधि) नेट के नए संस्करणों में आया। हालांकि, इसके साथ कुछ समस्याएं प्रतीत होती हैं। HttpUtility vs. WebUtility प्रश्न देखें।

+0

आप सही हैं, मैं परिणाम का उपयोग कर रहा था, अगर मैं इसे एएसपी में डालता हूं: लेबल यह कॉपीराइट चरित्र को © में परिवर्तित करेगा। – Matthew

+0

मैं देखता हूं। यह जानना बहुत उपयोगी है :)। –

20

उपयोग WebUtility.HtmlDecode नेट 4

उदाहरण के लिए में शामिल है, अगर मैं एक सांत्वना अनुप्रयोग में चलाएँ:

Console.WriteLine(WebUtility.HtmlDecode("&nbsp;, &amp;, &copy;")); 

मैं , &, c

+1

मुझे शायद यह कहना चाहिए था कि यह .NET 3.5 के लिए है। हालांकि मैंने आपको +1 किया। वैसे भी धन्यवाद। – Matthew

+0

वेब उपयोगिता और HttpUtility की 'HtmlDecode' विधि के बीच क्या अंतर है? – crush

+0

यहाँ एक जवाब है: http://stackoverflow.com/questions/17352981/webutility-htmldecode-vs-httputilty-htmldecode संक्षेप में - WebUtility WinRT के साथ आया था, यह नये है जबकि HttpUtility पुराने (सभी प्रयोग किया जाता है जगह पर तो मैं इसे रहने की उम्मीद करता हूं)। मुझे लगता है कि WebUtility System.dll (System.Net) में है, जो WinApps के लिए थोड़ा और अधिक सुलभ बनाता है (यदि आपको सही तरीके से याद है तो आपको System.Web पर निर्भर नहीं होना चाहिए)। –

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