2009-11-28 12 views
65

के बीच अंतर URL Encode और HTML Encode के बीच क्या अंतर है?यूआरएल एनकोड और एचटीएमएल एनकोड

+2

यूआरएल एन्कोड अक्षरों को एन्कोड करेगा ताकि वे यूआरएल के लिए मान्य हों। जैसे '?' '3 3 एफ 'हो जाता है एचटीएमएल एन्कोड अक्षरों को एन्कोड करेगा ताकि वे HTML के लिए मान्य हों। जैसे '<' '<' –

+2

बन जाता है यदि आप किसी URL में उपयोग के लिए एन्कोड करना चाहते हैं, तो आप यूआरएल एन्कोडिंग का उपयोग करते हैं। यदि आप किसी HTML पृष्ठ पर डिस्प्ले के लिए एन्कोड करना चाहते हैं, तो आप इसे –

उत्तर

65

एचटीएमएल एन्कोडिंग बदलने के

"<hello>world</hello>" 

"&lt;hello&gt;world&lt;/hello&gt;" 

के लिए URL एन्कोडिंग एक समान की तरह HTML तत्वों के साथ भ्रम को रोकने के लिए HTML दस्तावेज़ में इस्तेमाल किया तार में विशेष वर्ण निकल जाता है यूआरएल में स्ट्रिंग वैल्यू के लिए चीज

बदलना
"hello+world = hello world" 

को
"hello%2Bworld+%3D+hello+world" 
+2

एन्कोड करते हैं, मुझे लगता है कि HtmlEncode उपयोग के दोनों परिदृश्यों के लिए कहीं अधिक व्यापक है। जैसा कि @ मेहरडैड इंगित करता है URLEncode में प्लस प्रतीकों को डालता है, लेकिन यदि आप उदाहरण के लिए urlrewrites का उपयोग करते हैं तो इससे समस्याएं पैदा हो सकती हैं। तो यूआरएल के लिए भी HTMLEncode का उपयोग करना बहुत कम समस्याग्रस्त है। मुझे urls के लिए HtmlEncode का उपयोग करके कभी भी कोई समस्या नहीं मिली है लेकिन मेरे पास urls के लिए UrlEncode का उपयोग करते समय है। मेरे दिमाग में, UrlEncode ज्यादातर बेकार है। –

+8

एचटीएमएल एन्कोडिंग और यूआरएल एन्कोडिंग मौलिक रूप से अलग-अलग चीजें करते हैं। यदि आप एचटीएमएल एन्कोड करते हैं, उदाहरण के लिए, 'हैलो वर्ल्ड' और इसे यूआरएल में जोड़ने का प्रयास करें, तो आपको एक अवैध यूआरएल मिलेगा। दोनों महत्वपूर्ण हैं, और विभिन्न स्थितियों के लिए इस्तेमाल किया जाना चाहिए। – Neil

+0

बस UrlEncoding के साथ एन्कोडिंग यूआरएल के लिए कई HtmlEncode उपयोगों को पार करना और प्रतिस्थापित करना था, रिक्त स्थान के एन्कोडिंग के साथ समस्याएं और कुछ अन्य विशेष वर्ण – PJUK

3

एचटीएमएलएनकोड और यूआरएलएनकोड एचटीएमएल और यूआरएल में अमान्य वर्णों के साथ सौदा करता है, या अधिक सटीक रूप से, वर्ण जिन्हें विशेष रूप से सही तरीके से व्याख्या करने के लिए लिखा जाना चाहिए। उदाहरण के लिए, एचटीएमएल में < और> अक्षरों को टैग इंगित करने के लिए उपयोग किया जाता है। इस प्रकार, यदि आप गणित सूत्र लिखना चाहते हैं, तो 1 + 1 < 2 + 2 की तरह कुछ, '<' सामान्यतः टैग की शुरुआत के रूप में व्याख्या किया जाएगा। HTMLEncoding इस वर्ण को "& लेफ्टिनेंट" में बदल देता है; " जो कम से कम संकेत के एन्कोडेड प्रतिनिधित्व है। URLEncoding वही करता है, लेकिन यूआरएल के लिए, जिसके लिए विशेष पात्र अलग हैं, हालांकि कुछ ओवरलैप है।

17

urlEncode विशेष वर्णों को वर्णों के साथ बदलता है जिन्हें संबोधित करने के उद्देश्य से वेब ब्राउज़र/वेब सर्वर द्वारा समझा जा सकता है ... इसलिए यूआरएल।

HtmlEncode की जगह चरित्र तार के साथ विशिष्ट वर्णों: उदाहरण के लिए, रिक्त स्थान 20% से बदल दिए जाते हैं, '=% 27 आदि ...

इन संदर्भों को देखें जो एचटीएमएल इंजन द्वारा पृष्ठ की सामग्री को प्रस्तुत करने के लिए स्वयं पहचाने जाते हैं - & जैसी चीजें &amp; or < = &lt; > = &lt; बन जाती हैं, यह HTML इंजन को इन वर्णों को भागों के रूप में व्याख्या करने से रोकती है एचटीएमएल मार्कअप का और इसलिए उन्हें प्रस्तुत करें जैसे कि वे तार थे।

इस संदर्भ देखें:

+0

असल URLEncode साथ + रिक्त स्थान है, जो कुछ स्थितियों में एक समस्या हो सकती बदल देता है। – NetMage

12

दोनों HTML और यूआरएल अनिवार्य रूप से बहुत भाषाओं विवश कर रहे हैं। एक भाषा के रूप में वे विशिष्ट कीवर्ड या ऑपरेटरों के लिए अर्थ जोड़ते हैं। हालांकि इन दोनों भाषाओं के लिए, कीवर्ड लगभग हमेशा एक अक्षर होते हैं। उदाहरण के लिए

  • HTML: > और <
  • यूआरएल:/और:

प्रत्येक भाषा के उपयोग में हालांकि यह एक तरह से कि यह सुनिश्चित नहीं होता में इन निर्माणों उपयोग करना संभव है भाषा का अर्थ। उदाहरण के लिए इस पोस्ट में > वर्ण शामिल है। मैं नहीं चाहता कि इसे HTML के रूप में व्याख्या किया जाए, बस टेक्स्ट।

यह वह जगह है जहां एनकोड और डिकोड विधियां खेलती हैं। ये विधियां क्रमशः एक स्ट्रिंग लेती हैं और उन पात्रों में से किसी एक को परिवर्तित करती हैं जिन्हें अन्यथा एक बच निकले रूप में कीवर्ड के रूप में माना जाएगा जिसे भाषा के हिस्से के रूप में नहीं समझा जाएगा।

उदाहरण के लिए: > को HTMLEncode में पास करना & gt;

1

मुझे नहीं पता कि आप किस भाषा में काम कर रहे हैं, लेकिन PHP manual उदाहरण के लिए अच्छी व्याख्या प्रदान करता है।

URLEncode

जिसमें -_ को छोड़कर सभी गैर अक्षरांकीय अक्षर एक स्ट्रिंग देता है। को प्रतिशत (%) चिह्न के साथ प्रतिस्थापित किया गया है जिसके बाद दो हेक्स अंक और प्लस (+) संकेतों के रूप में एन्कोड किए गए रिक्त स्थान हैं। यह उसी तरह से एन्कोड किया गया है जो डब्ल्यूडब्ल्यूडब्लू फॉर्म से डेटा पोस्ट किया गया है एन्कोडेड है, वैसे ही एप्लिकेशन/एक्स-www-form-urlencoded मीडिया प्रकार जैसा ही है। यह ऐतिहासिक कारणों से आरएफसी 1738 एन्कोडिंग (कच्चेरलेनकोड()) देखें, रिक्त स्थान (+) संकेतों के रूप में एन्कोड किए गए हैं।

Read on

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