के परिचय से पहले एचटीएमएल 5, एक तत्व के साथ एक दस्तावेज़ पर वर्ण एन्कोडिंग सेट करने के लिए आपको नीचे देखी गई कुछ वर्बोज़ लाइन लिखने की आवश्यकता होती है। यदि आप अपने वेब पेज में HTML4 का उपयोग कर रहे थे तो यह मेटा वर्णसेट तत्व है:
इस कोड में ध्यान देने योग्य बात यह है कि आप इसके आस-पास जो उद्धरण चिह्न देखते हैं, वे हैं सामग्री विशेषता: सामग्री ="टेक्स्ट/एचटीएमएल; वर्णसेट = आईएसओ-8859-1". सभी HTML विशेषताओं की तरह, ये उद्धरण चिह्न विशेषता के मान को परिभाषित करते हैं, जो दर्शाता है कि संपूर्ण स्ट्रिंग टेक्स्ट/एचटीएमएल; वर्णसेट = आईएसओ-८९५९-१ है सामग्री इस तत्व का। यह उचित HTML है, और इस तरह इस स्ट्रिंग को लिखा जाना था। यह बोझिल भी लंबा और बदसूरत है! यह भी ऐसा कुछ नहीं है जिसे आप शायद अपने सिर के ऊपर से याद रखेंगे!
ज्यादातर मामलों में, वेब डेवलपर्स को इस कोड को एक साइट से किसी भी नई साइट में कॉपी और पेस्ट करना होगा, क्योंकि इसे स्क्रैच से लिखना बहुत कुछ पूछ रहा था।
HTML5 अतिरिक्त "सामान" को काट देता है
HTML5 ने न केवल भाषा में कुछ नए तत्व जोड़े हैं, बल्कि इसने मेटा चारसेट तत्व सहित HTML के सिंटैक्स को बहुत सरल बनाया है। HTML5 के साथ, आप अपने वर्ण एन्कोडिंग को याद रखने में आसान सिंटैक्स के साथ जोड़ सकते हैं
मेटा तत्व जो आप नीचे देख रहे हैं:उस सरलीकृत सिंटैक्स की तुलना इस लेख की शुरुआत में हमने जो लिखा था, वह HTML4 के लिए इस्तेमाल किया गया पुराना सिंटैक्स है, और आप देखेंगे कि HTML5 संस्करण को लिखना और याद रखना कितना आसान है। इसे किसी मौजूदा साइट से कॉपी और पेस्ट करने की आवश्यकता के बजाय, जिस पर आप काम कर रहे थे, यह बिल्कुल कुछ ऐसा है, जिसे फ्रंट-एंड वेब डेवलपर के रूप में आप याद रख सकते हैं। समय की यह बचत बहुत अधिक नहीं हो सकती है, लेकिन जब आप अन्य सिंटैक्स क्षेत्रों पर विचार करते हैं जिन्हें HTML5 सरलीकृत करता है, तो बचत बढ़ जाती है!
हमेशा कैरेक्टर एन्कोडिंग शामिल करें
आपको अपने वेब पेजों के लिए हमेशा वर्ण एन्कोडिंग शामिल करनी चाहिए, भले ही आप कभी भी किसी का उपयोग करने का इरादा न रखते हों विशेष वर्ण. यदि आप वर्ण एन्कोडिंग शामिल नहीं करते हैं, तो आपकी साइट UTF-7 का उपयोग करके क्रॉस-साइट स्क्रिप्टिंग हमले के प्रति संवेदनशील हो जाती है।
इस परिदृश्य में, एक हमलावर देखता है कि आपकी साइट में कोई वर्ण एन्कोडिंग परिभाषित नहीं है, इसलिए यह ब्राउज़र को यह सोचकर धोखा देता है कि पृष्ठ का वर्ण एन्कोडिंग UTF-7 है। इसके बाद, हमलावर वेब पेज में UTF-7 एन्कोडेड स्क्रिप्ट को इंजेक्ट करता है, और आपकी साइट हैक कर ली जाती है। यह आपकी कंपनी से लेकर आपके आगंतुकों तक शामिल सभी लोगों के लिए समस्याग्रस्त है। अच्छी खबर यह है कि इससे बचना एक साधारण समस्या है - अपने सभी वेबपृष्ठों में वर्ण एन्कोडिंग जोड़ना सुनिश्चित करें।
कैरेक्टर एन्कोडिंग कहाँ जोड़ें
किसी वेबपेज के लिए वर्ण एन्कोडिंग आपके HTML की पहली पंक्ति होनी चाहिए
तत्व। यह सुनिश्चित करता है कि ब्राउजर जानता है कि चरित्र एन्कोडिंग क्या है, इससे पहले कि वह पृष्ठ पर कुछ और करता है, सिद्धांत को निर्धारित करने और यह पहचानने के लिए कि यह एक HTML पृष्ठ है। आपका एचटीएमएल पढ़ना चाहिए:
...
अतिरिक्त सुरक्षा के लिए HTTP हेडर का उपयोग करना
आप HTTP शीर्षलेखों में वर्ण एन्कोडिंग भी निर्दिष्ट कर सकते हैं। यह HTML पृष्ठ में जोड़ने से कहीं अधिक सुरक्षित है, लेकिन आपको सर्वर कॉन्फ़िगरेशन या .htaccess तक पहुंच की आवश्यकता होगी फ़ाइलें, जिसका अर्थ है कि आपको इस प्रकार की पहुँच प्राप्त करने के लिए अपनी वेबसाइट के होस्टिंग प्रदाता के साथ काम करने की आवश्यकता हो सकती है या उनके लिए परिवर्तन करने के लिए आप। यहां पहुंच चुनौती है। परिवर्तन स्वयं सरल है, इसलिए कोई भी होस्टिंग प्रदाता आपके लिए यह परिवर्तन सापेक्ष आसानी से करने में सक्षम होना चाहिए।
यदि आप उपयोग कर रहे हैं अमरीका की एक मूल जनजाति, आप जोड़कर अपनी पूरी साइट के लिए डिफ़ॉल्ट वर्ण सेट सेट कर सकते हैं: AddDefaultCharset UTF-8 अपनी जड़ तक .htaccess फ़ाइल। अपाचे का डिफॉल्ट कैरेक्टर सेट है आईएसओ-8859-1.