मैं सी # में html उपयोग के लिए पाठ से कैसे बचूँ? मैं करना चाहता हूँ
sample="<span>blah<span>"
और है
<span>blah<span>
केवल html: टैग के भाग के साथ ब्ला के बजाय सादे पाठ के रूप में दिखाएं
मैं सी # में html उपयोग के लिए पाठ से कैसे बचूँ? मैं करना चाहता हूँ
sample="<span>blah<span>"
और है
<span>blah<span>
केवल html: टैग के भाग के साथ ब्ला के बजाय सादे पाठ के रूप में दिखाएं
जवाबों:
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
यदि आप System.Web
असेंबली का उपयोग नहीं करना चाहते हैं, तो भी आप इसका उपयोग कर सकते हैं :
var encoded = System.Security.SecurityElement.Escape(unencoded)
प्रति इस अनुच्छेद , के बीच का अंतर System.Security.SecurityElement.Escape()
और System.Web.HttpUtility.HtmlEncode()
है कि पूर्व भी apostrophe encodes है (')
अक्षर।
SecurityElement.Escape()
लिए भागने का नहीं कहना जो कि एचटीएमएल नहीं है।
आप या इसके बाद के संस्करण .NET 4 का उपयोग कर रहे हैं और आप संदर्भ के लिए नहीं करना चाहते हैं System.Web
, तो आप उपयोग कर सकते हैं WebUtility.HtmlEncode
सेSystem
var encoded = WebUtility.HtmlEncode(unencoded);
यह उसी तरह का प्रभाव है HttpUtility.HtmlEncode
और इसे अधिक पसंद किया जाना चाहिए System.Security.SecurityElement.Escape
।
SecurityElement.Escape
XML पर संचालित होता है और HtmlEncode
HTML पर काम करता है, और XML और HTML एन्कोडिंग की कुछ अलग आवश्यकताएँ हैं ( विवरण के लिए इस उत्तर को देखें)। इसलिए, उदाहरण के लिए, SecurityElement.Escape
उपयोग करने की अनुमति है '
, जबकि HtmlEncode
ऐसा नहीं है।
किसी ने अभी तक उल्लेख नहीं किया है, ASP.NET 4.0 में ऐसा करने के लिए नया सिंटैक्स है। के बजाय
<%= HttpUtility.HtmlEncode(unencoded) %>
आप बस कर सकते हैं
<%: unencoded %>
यहाँ और अधिक पढ़ें: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- एएसपी निवल MVC-2.aspx
आप वास्तविक HTML टैग्स का उपयोग कर सकते हैं <xmp>
और </xmp>
स्ट्रिंग को आउटपुट करने के लिए है जैसे कि xmp टैग्स के बीच में सभी टैग दिखाने के लिए।
या आप सर्वर पर भी उपयोग कर सकते हैं Server.UrlEncode
या HttpUtility.HtmlEncode
।
<xmp>
बहुत पहले ही पदावनत कर दिया गया है: stackoverflow.com/questions/8307846/…<pre>
इसके बजाय उपयोग करें
यहाँ यह नहीं देखा
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")
यह केवल ऐसी चीज थी जो HTML के साथ काम करते समय (asp 4.0+) काम करती थी। '
के रूप में प्रदान किया जाता है '
html में (htmldecode का प्रयोग करके), विफल इसका कारण:
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It's Allstars</a>
कुछ विशेष उद्धरण वर्ण हैं जिन्हें HtmlEncode द्वारा हटाया नहीं गया है और इसे “और” की तरह सही ढंग से Edge या IE में प्रदर्शित नहीं किया जाएगा। आप नीचे दिए गए फ़ंक्शन जैसे कुछ के साथ इन वर्णों को प्रतिस्थापित कर सकते हैं।
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}