2012-01-31 12 views
10

http://www.w3schools.com/tags/ref_urlencode.aspक्यों यूआरएल एनकोड, या जो वर्ण एन्कोड करने के लिए

के बाद से URL में अक्सर ASCII सेट के बाहर वर्ण हो, यूआरएल एक मान्य ASCII प्रारूप में परिवर्तित हो गया है।

लेकिन दोनों स्थान, /%% ASCII चरित्र सेट का हिस्सा हैं, तो उन्हें पहले स्थान पर क्यों एन्कोड करें? कौन से पात्र एन्कोड किए जाने चाहिए?

+0

उदाहरण के लिए यूटीएफ -8 वर्ण, या किसी भिन्न चरित्र सेट से कोई भी चरित्र। एएससीआईआई केवल पात्रों की सबसे छोटी श्रृंखला के बारे में है। – Halcyon

+0

मैं शर्मिंदा नहीं हूं, लेकिन मुझे लगता है कि प्रत्येक चरित्र को एन्कोड किया जाना चाहिए जिसका एक अलग अर्थ हो सकता है (उदाहरण के लिए और अंतरिक्ष)। w3schools.com का उपयोग न करें, इसका डब्ल्यू 3 सी के साथ कुछ लेना देना नहीं है और अक्सर गलत होता है। –

उत्तर

5

जैसा कि बताया गया है, रिक्त स्थान URL में मान्य नहीं हैं। अधिकांश ब्राउज़र स्वचालित रूप से उन्हें ऑलनकोड करते हैं। हालांकि ...

आपके द्वारा लिंक किया गया पृष्ठ "उदाहरण मुझे" अनुभाग में "गुंटर" शब्द का उपयोग करके एक उदाहरण है। यदि "गुंटर" शब्द को क्वेरीस्ट्रिंग पैरामीटर के रूप में भेजा गया था, तो यह काम नहीं करेगा। चूंकि "ü" मानक ASCII चरित्र सेट में नहीं है।

इसका उपयोग तब किया जाना चाहिए जब संभावित रूप से गैर-ASCII वर्ण हों। हाइपरलिंक बनाने के लिए डेटाबेस से डेटा का उपयोग करते समय एक उदाहरण हो सकता है। मान लीजिए कि कोड उपयोगकर्ता प्रोफाइल पेज का लिंक बनाता है। Unencoded, मेरा होगा:

<a href="profile/?username=David Stratton">Your profile</a> 

जबकि गुंटर के

<a href="profile/?username=Günter">Your profile</a> 

खान, अधिकांश ब्राउज़र को संभाल सकता होगा। गुंटर, शायद नहीं।

एन्कोड इन

<a href="profile/?username=David%20Stratton">Your profile</a> 

और

<a href="profile/?username=G%FCnter">Your profile</a> 

जो मान्य URL हैं बन जाएगा।

+0

कृपया यह न कहें * "यह काम नहीं करेगा" *। अगर कुछ गड़बड़ हो तो कम से कम यह बताएं कि यह क्या करता है। Spec/link के लिए – yckart

1

रिक्त स्थान जैसे कुछ पात्रों को वैध यूआरएल सुनिश्चित करने के लिए भागने की आवश्यकता है। जीईटी पैरामीटर उत्पन्न करते समय एक बार ऐसा जगह आती है जहां यह आना सुनिश्चित होता है।

6

एक URL के वर्णों इनकोडिंग किया जाना चाहिए (कृपया तथ्य यह है कि सबसे अच्छी तरह से डिजाइन प्रणाली है कि जैसे एक पैरामीटर में एक उपयोगकर्ता नाम पारित नहीं होगा माफ कर दीजिए। इस अवधारणा को स्पष्ट करने के लिए। सिर्फ एक नमूना था) क्योंकि URL specification के अनुसार कुछ पात्रों का विशेष अर्थ होता है, कुछ पात्रों की अनुमति नहीं है और कुछ वर्ण सभी वर्ण सेटों में प्रतिनिधित्व योग्य नहीं हैं।

थोड़ा और मार्गदर्शन के लिए this intro देखें।

जो वर्ण आप '/' देते हैं, उनके उदाहरणों के बारे में यूआरएल में घटक विभाजक के रूप में उपयोग के लिए आरक्षित है और '%' को बचने वाले चरित्र के रूप में उपयोग किया जाता है।

+0

+1 :-) – The111

संबंधित मुद्दे