में% 20 के साथ सभी रिक्त स्थानों को कैसे बदलूं, मैं सी # का उपयोग करके एक यूआरएल में एक स्ट्रिंग बनाना चाहता हूं, .NET Framework में कुछ होना चाहिए जो मदद करनी चाहिए, है ना?मैं सी #
मैं सी #
उत्तर
मुझे विश्वास है कि आप HttpServerUtility.UrlEncode देख रहे हैं।
System.Web.HttpUtility.UrlEncode(string url)
मुझे लगता है [Uri.EscapeUriString()] (https://msdn.microsoft.com/en-us/library/system.uri.escapeuristring%28v=vs.110%29.aspx) हमारे पास उचित विधि है इसके बारे में धार्मिक होने के लिए :) –
@StoyanDimov: 'EscapeUriString()' से बच नहीं है 'और' न ''' 'और न ही'?', इसलिए 'EscapeDataString()' उपयोग करने वाला एक प्रतीत होता है। –
किसी ने इस प्रश्न को पूरी तरह उत्तर देने के लिए संपादित किया था। हम [किसी विशेष पोस्ट के अर्थ को बदलने के लिए संपादन का उपयोग नहीं करना चाहिए] (http://stackoverflow.com/help/editing)। – palswim
डॉक्स से:
String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);
अद्यतन: यह वास्तव में एचटीएमएल नहीं Urls encodes। UrlEncode (TestString) का उपयोग करें जो हर किसी से बेहतर पढ़ सकता है। एचटीएमएल एन्कोडिंग की तलाश करते समय किसी को इस थ्रेड को बंद करने के मौके पर इसे हटा नहीं रहा है।
के अच्छे राउंड-ट्रिप उपयोग के लिए जावास्क्रिप्ट द्वारा ठीक से डीकोड किया जा सकता है ओपी यूआरएल एन्कोडिंग के बारे में पूछ रहा है; एचटीएमएल एन्कोडिंग नहीं। यह केवल –
नहीं, यह HTML एन्कोडिंग, नहीं URL एन्कोडिंग (जैसा कि नाम का तात्पर्य ...) –
हाँ, तुम सही हो, यूआरएल एन्कोड करने के लिए UrlEncode() का उपयोग करने के लिए है 'बचें' और 'अक्षर' नहीं। –
ऐसा करने का एक और तरीका है Uri.EscapeUriString(stringToEscape)
उपयोग कर रहा है।
दुर्भाग्य HTML निकाय एन्कोड करने के लिए है, इस पद्धति नहीं करता है - –
यह '=' से नहीं बचता है, न ही '?'। ऐसा लगता है कि 'Uri.EscapeDataString()' जाने का रास्ता है। –
मैं उपयोगी System.Web.HttpUtility.UrlPathEncode(string str);
यह 20% के साथ रिक्त स्थान को बदल देता है और साथ नहीं + पाया।
ऐसा लगता है कि कोई UrlPathDecode विधि नहीं है? – syclee
कम से कम 4.0 में है। System.Web.HttpUtility.UrlDecode ("एक% 20b") "बी" – Abacus
उत्पन्न करता है यह काम करता है लेकिन ब्राउज़र के लिए यह उपयोग नहीं करता है। इसके बजाय Uri.EscapeUriString (STRING) का उपयोग करें। एमएसडीएन: "उपयोग न करें; केवल ब्राउज़र संगतता के लिए लक्षित है। UrlEncode का उपयोग करें।" http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.urlpathencode.aspx – VRC
रिक्त स्थान के साथ-साथ शेष विशेष पात्रों से बचने के लिए, System.Uri.EscapeDataString(string stringToEscape)
का उपयोग करें।
मुझे यह भी करने की ज़रूरत है, इस सवाल को कई साल पहले मिला, लेकिन प्रश्न शीर्षक और पाठ काफी मेल नहीं खाता है, और Uri.EscapeDataString
या UrlEncode
का उपयोग करके (कृपया इसका उपयोग न करें!) आमतौर पर समझ में नहीं आता है जब तक हम अन्य यूआरएल के पैरामीटर के रूप में यूआरएल पास करने के बारे में बात नहीं कर रहे हैं।
(उदाहरण के लिए, एक कॉलबैक URL गुजर जब खुले ID प्रमाणीकरण, Azure AD, आदि कर)
आशा इस सवाल का अधिक व्यावहारिक जवाब है: मैं सी # का उपयोग कर एक URL में एक स्ट्रिंग बनाना चाहते , .NET ढांचे में कुछ होना चाहिए जो मदद करनी चाहिए, है ना?
हाँ - दो कार्य यूआरएल
इस कोड में कोई पैरामीटर से बचने के लिए URL
Uri.EscapeDataString
फ़ॉर्मेट करने के लिए सी #
String.Format
में URL तार बनाने के लिए सहायक होते हैंString.Format("https://site/app/?q={0}&redirectUrl={1}", Uri.EscapeDataString("search for cats"), Uri.EscapeDataString("https://mysite/myapp/?state=from idp"))
इस परिणाम
पैदा करताhttps://site/app/?q=search%20for%20cats&redirectUrl=https%3A%2F%2Fmysite%2Fmyapp
जो सुरक्षित रूप से कॉपी किया जा सकता है और एक ब्राउज़र के एड्रेस बार में पेस्ट कर दिया है, या एक एचटीएमएल
A
टैग कीsrc
विशेषता, याcurl
के साथ प्रयोग किया, या इनकोडिंग एक QR कोड में, आदि।
और जावास्क्रिप्ट बराबर 'की तरह कुछ होगा" https: // साइट/एप्लिकेशन/q = "+ encodeURIComponent (" बिल्लियों के लिए खोज ") + "और redirectUrl =" + encodeURIComponent ("https: // mysite/myapp /? state = idp से") 'जो एक ही आउटपुट उत्पन्न करता है। – nothingisnecessary
अनुमोदित कहानी पर टिप्पणी के रूप में, HttpServerUtility.UrlEncode विधि के साथ + बजाय 20% की रिक्त स्थान बदल देता है। उपयोग के बजाय इन दोनों तरीकों में से एक: Uri.EscapeUriString() या Uri.EscapeDataString()
नमूना कोड:
HttpUtility.UrlEncode("https://mywebsite.com/api/get me this file.jpg")
//"https%3a%2f%2fmywebsite.com%2fapi%2fget+me+this+file.jpg"
Uri.EscapeUriString("https://mywebsite.com/api/get me this file.jpg");
//"https://mywebsite.com/api/get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%20me%20this%20file.jpg"
//When your url has a query string:
Uri.EscapeUriString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https://mywebsite.com/api/get?id=123&name=get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%3Fid%3D123%26name%3Dget%20me%20this%20file.jpg"
- 1. मैं सी ++ से सी #
- 2. मैं सी/उद्देश्य सी
- 3. मैं सी ++
- 4. मैं सी #
- 5. मैं सी ++
- 6. मैं सी #
- 7. मैं सी #
- 8. मैं सी #
- 9. मैं सी #
- 10. मैं सी ++
- 11. मैं सी #
- 12. मैं सी #
- 13. मैं सी #
- 14. मैं सी #
- 15. मैं सी
- 16. मैं सी #
- 17. मैं सी #
- 18. मैं सी #
- 19. मैं सी #
- 20. मैं सी #
- 21. मैं सी #
- 22. मैं सी #
- 23. मैं सी #
- 24. ++ मैं + ++ मैं जावा में + ++ मैं बनाम सी
- 25. मैं LINQ (सी # 3.0)
- 26. मैं उद्देश्य-सी
- 27. मैं कैसे सी #
- 28. मैं सी # टेक्स्टबॉक्स
- 29. मैं उद्देश्य-सी
- 30. मैं मोंगोडीबी सी # ड्राइवर
यह सवाल शीर्षक सवाल मेल नहीं खाता। सी # में% 20 (शीर्षक) के साथ सभी रिक्त स्थानों को प्रतिस्थापित करने के लिए आप 'स्ट्रिंग। रीप्लेस ("", "% 20") का उपयोग कर सकते हैं। यदि आप एक यूआरएल बना रहे हैं तो आपको केवल एक स्ट्रिंग में यूआरएल वैल्यू डालना होगा: 'string url = "https: // site/app /? Q = बिल्लियों" लेकिन यदि ओपी एक यूआरएल पास करने के बारे में बात कर रहा था एक और यूआरएल के हिस्से के रूप में पैरामीटर प्राप्त करें जो पूरी तरह से कुछ और है, जो कि एएसपी.NET (या जो कुछ भी) में एक HTML एंकर टैग में एक यूआरएल उत्सर्जित करता है, कहता है। – nothingisnecessary