InNet 4.5+ का उपयोग करें WebUtility
बस स्वरूपण के लिए मैं इसे उत्तर के रूप में प्रस्तुत कर रहा हूं।
उनकी तुलना में कोई अच्छा उदाहरण नहीं मिल सकता है:
string testString = "http://test# space 123/text?var=val&another=two";
Console.WriteLine("UrlEncode: " + System.Web.HttpUtility.UrlEncode(testString));
Console.WriteLine("EscapeUriString: " + Uri.EscapeUriString(testString));
Console.WriteLine("EscapeDataString: " + Uri.EscapeDataString(testString));
Console.WriteLine("EscapeDataReplace: " + Uri.EscapeDataString(testString).Replace("%20", "+"));
Console.WriteLine("HtmlEncode: " + System.Web.HttpUtility.HtmlEncode(testString));
Console.WriteLine("UrlPathEncode: " + System.Web.HttpUtility.UrlPathEncode(testString));
//.Net 4.0+
Console.WriteLine("WebUtility.HtmlEncode: " + WebUtility.HtmlEncode(testString));
//.Net 4.5+
Console.WriteLine("WebUtility.UrlEncode: " + WebUtility.UrlEncode(testString));
आउटपुट:
UrlEncode: http%3a%2f%2ftest%23+space+123%2ftext%3fvar%3dval%26another%3dtwo
EscapeUriString: http://test#%20space%20123/text?var=val&another=two
EscapeDataString: http%3A%2F%2Ftest%23%20space%20123%2Ftext%3Fvar%3Dval%26another%3Dtwo
EscapeDataReplace: http%3A%2F%2Ftest%23+space+123%2Ftext%3Fvar%3Dval%26another%3Dtwo
HtmlEncode: http://test# space 123/text?var=val&another=two
UrlPathEncode: http://test#%20space%20123/text?var=val&another=two
//.Net 4.0+
WebUtility.HtmlEncode: http://test# space 123/text?var=val&another=two
//.Net 4.5+
WebUtility.UrlEncode: http%3A%2F%2Ftest%23+space+123%2Ftext%3Fvar%3Dval%26another%3Dtwo
InNet 4.5+ का उपयोग करें WebUtility
.UrlEncode
यह HttpUtility.UrlEncode
अधिक सामान्य वर्णों के लिए प्रतिकृति (पूर्व- v4.0) प्रतीत होता है :
Uri.EscapeDataString(testString).Replace("%20", "+").Replace("'", "%27").Replace("~", "%7E")
नोट: EscapeUriString
एक मान्य यूआरआई स्ट्रिंग रखेगा, जिसके कारण संभव के रूप में कई प्लेटेक्स्ट पात्रों का उपयोग किया जा सकता है।
विभिन्न एन्कोडिंग्स की तुलना करने वाली तालिका के लिए यह उत्तर देखें:
https://stackoverflow.com/a/11236038/555798
लाइन ब्रेक्स
उन सभी को यहां सूचीबद्ध किया गया है (के अलावा HttpUtility.HtmlEncode
) "\n\r"
में %0a%0d
या में परिवर्तित हो जाएगा%0A%0D
कृपया इसे संपादित करने और मेरे परीक्षण स्ट्रिंग में नए वर्ण जोड़ने के लिए स्वतंत्र महसूस करें, या उन्हें टिप्पणियों में छोड़ दें और मैं इसे संपादित करूंगा।