Url Encode और HTML encode के बीच अंतर


85

URL एनकोड और HTML एनकोड के बीच क्या अंतर है ?


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

4
URL एनकोड वर्णों को एन्कोड करेगा ताकि वे URL के लिए मान्य हों। उदाहरण के लिए, HTML एन्कोड ?हो जाता है, %3Fताकि वे HTML के लिए मान्य हो, वर्णों को एन्कोड कर देंगे। जैसे <बन जाता है&lt;
मैट एलेन

जवाबों:


83

HTML एन्कोडिंग HTML दस्तावेज़ों में उपयोग किए जाने वाले तार में विशेष वर्णों को भागने से बचाता है ताकि HTML तत्वों के साथ भ्रम को रोका जा सके

"<hello>world</hello>" 

सेवा

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

URL एनकोडिंग URL में स्ट्रिंग मानों के लिए एक समान काम करता है जैसे बदलना

"hello+world = hello world"

सेवा

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

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

1
बस के माध्यम से जाना था और UrlEncoding, रिक्त स्थान के एन्कोडिंग के साथ समस्याओं और कुछ अन्य विशेष पात्रों के साथ एन्कोडिंग url के लिए कई HtmlEncode usages की जगह
PJUK

UrlEncode के एवज में HtmlEncode का उपयोग करने से सावधान रहें, URL के लिए समस्याग्रस्त हो सकता है क्योंकि HtmlEncode आपके स्ट्रिंग में सभी वर्ण "" और "डालता है"। आपकी वेब सेवा URL प्राप्त करने की उम्मीद कर रही है, इसके आधार पर, कुछ अतिरिक्त "और" अक्षर बहुत समस्याग्रस्त हो सकते हैं। उदाहरण के लिए, यदि आपकी वेब सेवा URL में प्रत्येक पैरामीटर को "और" वर्ण से पहले होने की उम्मीद कर रही है, लेकिन आपने HtmlEncode का उपयोग किया है जो अतिरिक्त और "वर्णों के एक समूह में जोड़ा गया है, तो आपको संभवतः एक त्रुटि मिलेगी जब आपकी वेब सेवा URL की व्याख्या करने का प्रयास। मुझे सिर्फ इसी वजह से HtmlEncode के कई उपयोगों को UrlEncode के साथ बदलना पड़ा।
jdnew18

3
कृपया फिल न सुने। मुझे लगता है कि यह विश्वास करना असंभव है कि वह UrlEncode के बजाय HtmlEncode का उपयोग करके क्वेरी स्ट्रिंग्स का उपयोग कर रहा है और आधुनिक यूआरएल बना रहा है। UrlEncode कहना ज्यादातर बेकार है इस साइट पर मैंने कुछ समय में सबसे बेतुकी चीजों में से एक देखा है।
नारद डॉग

23

urlEncode वर्णों के साथ विशेष वर्णों को प्रतिस्थापित करता है जिन्हें वेब ब्राउज़र / वेब सर्वर द्वारा संबोधित करने के उद्देश्य से समझा जा सकता है ... इसलिए URL। उदाहरण के लिए, रिक्त स्थान% 20, '= 27% आदि के साथ बदले जाते हैं ...

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

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

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


वास्तव में URLEncode + के साथ रिक्त स्थान की जगह लेता है, जो कुछ स्थितियों में एक समस्या हो सकती है।
नेटमैज

13

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

  • HTML:> और <
  • URL: / और:

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

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

उदाहरण के लिए: HtmlEncode में पासिंग लौटाएगा & gt;


3

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


1

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

URLEncode

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

पढ़ते रहिये

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.