मेरे पास कुछ क्वेरी टेक्स्ट है जो जावास्क्रिप्ट के साथ एन्कोड किया जा रहा है, लेकिन मुझे एक ऐसे केस का सामना करना पड़ा है जहां मुझे सर्वर की तरफ एक ही टेक्स्ट एन्कोड करना पड़ सकता है, और जो एन्कोडिंग हो रहा है वह नहीं है वही। मुझे यह वही होना चाहिए। यहां एक उदाहरण दिया गया है।यूआरएल एन्कोडिंग उद्धरण और रिक्त स्थान
मैं खोज बॉक्स में "I like food"
दर्ज करता हूं और search
बटन दबाता हूं। जावास्क्रिप्ट इसे %22I%20like%20food%22
मान लें कि मुझे सर्वर पक्ष पर अनुरोध ऑब्जेक्ट पर एक स्ट्रिंग के समान मान मिलता है। यह इस तरह दिखेगा: "\"I like food\""
जब मैं HttpUtility.UrlEncode(value)
उपयोग करते हैं, परिणाम "%22I+like+food%22"
है। अगर मैं HttpUtility.UrlPathEncode(value)
उपयोग करते हैं, परिणाम "\"I%20like%20food\""
है तो UrlEncode
मेरी उद्धरण एन्कोडिंग है, लेकिन रिक्त स्थान के लिए +
चरित्र उपयोग कर रहा है। UrlPathEncode
मेरी रिक्त स्थान एन्कोड कर रहा है लेकिन मेरे बच निकले उद्धरण एन्कोडिंग नहीं कर रहा है।
मैं वास्तव में, यह दोनों क्या करने की जरूरत अन्यथा खोजें कोड पूरी तरह से मुझ पर borks (और मैं खोज कोड पर कोई नियंत्रण नहीं)।
टिप्स?
% 20 के साथ रिक्त स्थान बदलने के लिए एक स्ट्रिंग खोज/प्रतिस्थापन करें, फिर नियमित UrlEncode करें? –
@Marc B: क्या यह UrlEncode को "%" वर्णों को एन्कोड नहीं करेगा (जिसके परिणामस्वरूप प्रत्येक स्थान के लिए% 2520)? UrlPathEncode का बहुत अजीब व्यवहार। कम से कम UrlEncode रिक्त स्थान से "+" में अपना रूपांतरण दस्तावेज करता है। UrlPathEncode sais उद्धरण परिवर्तित करने के बारे में कुछ भी नहीं है ... –
हम्म। अच्छी बात। मुझे लगता है कि आप दूसरी तरफ जा सकते हैं, UrlEncode पहले, फिर% 20 के –