सर्वर और ब्राउज़र, इंटरनेट पर डेटा के बाइट भेजकर एक-दूसरे से कम्यूनिकेट करते हैं. अगर सर्वर, एचटीएमएल फ़ाइल भेजते समय यह नहीं बताता है कि वह किस वर्ण एन्कोडिंग फ़ॉर्मैट का इस्तेमाल कर रहा है, तो ब्राउज़र को यह पता नहीं चलेगा कि हर बाइट किस वर्ण को दिखाता है. कैरेक्टर एन्कोडिंग सेट करने के स्पेसिफ़िकेशन से इस समस्या को हल किया जा सकता है.
<meta charset> एलिमेंट को देर से जोड़ने पर, पेज के लोड होने की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है. ऐसा इसलिए, क्योंकि ब्राउज़र एक कैरेक्टर एन्कोडिंग को मान लेगा. अगर उसे बाद में पता चलता है कि उसने गलत अनुमान लगाया है, तो उसे एचटीएमएल को शुरू से पार्स करना होगा.
इस अहम जानकारी को कैसे पास करें
अगर इनसाइट को इनमें से कोई भी जानकारी मिलती है, तो वह कैरेक्टर एन्कोडिंग को सेट किया गया मानती है:
- दस्तावेज़ के
<head>में मौजूद<meta charset>एलिमेंट, जो दस्तावेज़ के शुरुआती 1024 बाइट में पूरी तरह से शामिल हो - मान्य IANA नाम से मेल खाने वाला
charsetडायरेक्टिव वालाContent-Typeएचटीटीपी रिस्पॉन्स हेडर
इनमें से किसी एक को भी सेट करने पर, अहम जानकारी मिल सकती है.
अपने एचटीएमएल में <meta charset> एलिमेंट जोड़ना
अपने एचटीएमएल दस्तावेज़ के पहले 1024 बाइट में <meta charset> एलिमेंट जोड़ें. यह एलिमेंट, शुरुआती 1024 बाइट में पूरी तरह से शामिल होना चाहिए. सबसे सही तरीका यह है कि <meta charset> एलिमेंट को अपने दस्तावेज़ के <head> में पहला एलिमेंट बनाएं.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
…
Content-Type एचटीटीपी रिस्पॉन्स हेडर जोड़ना
अपने सर्वर को कॉन्फ़िगर करें, ताकि वह Content-Type एचटीटीपी रिस्पॉन्स हेडर जोड़ सके. इसमें charset डायरेक्टिव शामिल होता है.
Content-Type: text/html; charset=UTF-8