एचटीएमएल में 'charset' एलान मौजूद नहीं है या बहुत देर से सेट किया गया है

सर्वर और ब्राउज़र, इंटरनेट पर डेटा की बाइट भेजकर एक-दूसरे से संपर्क करते हैं. अगर सर्वर यह तय नहीं करता है कि एचटीएमएल फ़ाइल भेजते समय, सर्वर कौनसा कैरेक्टर एन्कोडिंग फ़ॉर्मैट का इस्तेमाल करता है, तो ब्राउज़र को यह नहीं पता चलेगा कि हर बाइट किस वर्ण को दिखाती है. कैरेक्टर एन्कोडिंग की जानकारी देने से, यह समस्या हल हो गई है.

Lighthouse charset का ऑडिट कैसे फ़ेल हो जाता है

Lighthouse ऐसे पेजों को फ़्लैग करता है जो कैरेक्टर एन्कोडिंग के बारे में नहीं बताते हैं:

कैरेक्टर एन्कोडिंग का ऑडिट नहीं हो सका.

अगर इनमें से कोई भी जानकारी मिलती है, तो Lighthouse उसे कैरेक्टर एन्कोडिंग के तौर पर बताता है:

  • दस्तावेज़ के <head> में <meta charset> एलिमेंट, जो दस्तावेज़ की शुरुआती 1024 बाइट में पूरी तरह से शामिल है
  • charset डायरेक्टिव वाला Content-Type एचटीटीपी रिस्पॉन्स हेडर, जो आईएएनए के मान्य नाम से मेल खाता हो
  • बाइट-ऑर्डर मार्क (बीओएम)

charset ऑडिट पास करने का तरीका

अपने एचटीएमएल में <meta charset> एलिमेंट जोड़ें

अपने एचटीएमएल दस्तावेज़ की शुरुआती 1024 बाइट में, <meta charset> एलिमेंट जोड़ें. एलिमेंट को पहली 1024 बाइट के अंदर पूरी तरह शामिल किया जाना चाहिए. सबसे सही तरीका यह है कि आप अपने दस्तावेज़ के <head> में, <meta charset> एलिमेंट को पहला एलिमेंट बनाएं.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    …

Content-Type एचटीटीपी रिस्पॉन्स हेडर जोड़ें

अपने सर्वर को ऐसा Content-Type एचटीटीपी रिस्पॉन्स हेडर जोड़ने के लिए कॉन्फ़िगर करें जिसमें charset डायरेक्टिव शामिल हो.

Content-Type: text/html; charset=UTF-8

संसाधन