(और वे इन बातों पर आधिकारिक स्रोत रहे हैं), क्वेरी स्ट्रिंग में एक अंतरिक्ष चरित्र (और केवल क्वेरी स्ट्रिंग में) को "%20
" या "+
" के रूप में एन्कोड किया जा सकता है। "सिफारिशें" के तहत "क्वेरी स्ट्रिंग्स" अनुभाग से:
क्वेरी स्ट्रिंग के भीतर, प्लस चिह्न किसी स्थान के लिए शॉर्टंड नोटेशन के रूप में आरक्षित है। इसलिए, असली प्लस संकेत एन्कोड किया जाना चाहिए। इस विधि का उपयोग क्वेरी यूआरआई को सिस्टम में पास करना आसान बनाने के लिए किया गया था, जो रिक्त स्थान की अनुमति नहीं देता था।
3,4:
RFC2396 जो सामान्य रूप में यूआरआई पर आधिकारिक विनिर्देश है की धारा 3.4 के अनुसार, "क्वेरी" घटक यूआरएल पर निर्भर है। क्वेरी घटक क्वेरी घटक संसाधन द्वारा व्याख्या की जाने वाली जानकारी की एक स्ट्रिंग है।
query = *uric
एक प्रश्न घटक के भीतर, वर्ण ",", "/", "?" ":", "@", "&" "=", "+", "" , और "$" आरक्षित हैं।
इसलिए यह अन्य सॉफ़्टवेयर में एक बग है यदि यह "+
" अक्षरों के रूप में एन्कोड किए गए क्वेरी स्ट्रिंग में रिक्त स्थान वाले URL स्वीकार नहीं करता है।
आपके प्रश्न के तीसरे भाग के लिए, URLEncoder.encode()
से आउटपुट को ठीक करने के लिए एक तरीका (हालांकि थोड़ा बदसूरत) callreplaceAll("\\+","%20")
वापसी मूल्य पर है।
स्रोत
2009-07-31 08:09:42
%20
?
और+
से पहले होना चाहिए: HttpUtility.UrlPathEncode '% का उपयोग करता है 20 'HttpUtility.UrlEncode' + 'का उपयोग करता है। स्रोत: http://msdn.microsoft.com/en-us/library/system.web.httputility.urlpathencode(v=vs.110).aspx – CodeToad@ मेटाबायटर मुझे लगता है कि यह वाक्यांश के लिए तकनीकी रूप से सही है " एक यूआरएल में, क्या मुझे URL * के क्वेरी भाग में% 20 या + * का उपयोग करके रिक्त स्थान एन्कोड करना चाहिए? " क्योंकि जब आपके द्वारा दिखाए गए उदाहरण में केवल क्वेरी भाग में रिक्त स्थान शामिल होते हैं, तो यह उन सभी पाठकों के लिए स्पष्ट नहीं हो सकता है जो उत्तर निर्भर करता है। वैकल्पिक रूप से आप प्रश्न को "इन * विशिष्ट यूआरएल उदाहरण * में जोड़ सकते हैं, क्या मुझे एन्कोड करना चाहिए ..." – Matt