लोड हो रहा है...

HTML charset

Favicon लिंक ब्राउज़र को बताते हैं कि टैब पर कौन-सी छोटी छवि दिखानी है। Charset एक और मूल प्रश्न का उत्तर देता है: ब्राउज़र आपकी HTML फ़ाइल के बाइट को ऐसे अक्षरों में कैसे बदले जिन्हें मनुष्य पढ़ सकें? जब एन्कोडिंग गलत हो, फ़ारसी, अरबी, एक्सेंट वाला लैटिन, चीनी और emoji अक्सर mojibake बन जाते हैं — बिगड़ी हुई श्रृंखलाएँ जो टूटी लगती हैं, भले बाकी मार्कअप सही हो।

Charset का मतलब

एक कैरेक्टर सेट (और उसका एन्कोडिंग) डिस्क पर मौजूद बाइट को कैरेक्टर से जोड़ता है। HTML फ़ाइलें बाइट स्ट्रीम होती हैं। सही डिकोड नियम के बिना ब्राउज़र गलत अनुमान लगा सकता है। head में UTF-8 घोषित करना आधुनिक वेब की आदत है जो बहुभाषी टेक्स्ट और प्रतीकों को एडिटर, सर्वर और ब्राउज़र में विश्वसनीय रखती है।

सीधा उत्तर

head के ऊपरी हिस्से के पास <meta charset="UTF-8"> रखें — आदर्श रूप से फ़ाइल के पहले 1024 बाइट में ताकि ब्राउज़र एन्कोडिंग जल्दी जान ले। UTF-8 लगभग सभी नए पेजों के लिए वह एन्कोडिंग है जो आपको इस्तेमाल करनी चाहिए। HTML फ़ाइल को एडिटर में स्वयं भी UTF-8 के रूप में सहेजें। घोषणा और फ़ाइल सेव मेल खाने चाहिए; एक के बिना दूसरा अभी भी टूटे अक्षर पैदा करता है।

घोषणा, सेव और भाषा — अलग काम

📊 एन्कोडिंग बनाम भाषा बनाम title

भाग काम
meta charset बाइट कैसे कैरेक्टर में डिकोड होते हैं
एडिटर में UTF-8 सेव आपका टूल उन बाइट को डिस्क पर कैसे लिखता है
html lang पेज सामग्री किस मानव भाषा में है
title टेक्स्ट टैब लेबल के शब्द (एन्कोडिंग स्विच नहीं)

एक बहुभाषी UTF-8 डेमो

एक छोटा दस्तावेज़ charset को काम करते दिखाता है। Meta पहले head में आती है, फिर title, फिर body टेक्स्ट जो कई स्क्रिप्ट मिलाता है।

head में UTF-8 charset

html
HTML Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Charset demo</title>
</head>
<body>
<p>Hello — سلام — مرحبا — 你好 — 🙂</p>
</body>
</html>

सैंपल पढ़ना

  • <meta charset="UTF-8"> head में जल्दी बैठता है, ज़्यादातर अन्य सामग्री से पहले
  • lang="en" टूल्स के लिए प्राथमिक भाषा नाम देता है; यह charset की जगह नहीं लेता
  • पैराग्राफ में लैटिन, फ़ारसी, अरबी, चीनी और एक emoji हैं — फ़ाइल सही सेव हो तो UTF-8 के तहत सब ठीक
  • अगर वे अक्षर टूटें, HTML संरचना फिर से लिखने से पहले सेव एन्कोडिंग जाँचें

Charset जल्दी क्यों रखें

ब्राउज़र फ़ाइल को ऊपर से पढ़ना शुरू करते हैं। अगर charset केवल बड़े टेक्स्ट या स्क्रिप्ट ब्लॉक के बाद आए, कुछ अक्षर पहले ही गलत अनुमान से व्याख्या हो चुके हो सकते हैं। Meta को head के आरंभ के पास रखें। पिछली sessions के starter head में charset जानबूझकर पहले था — इसी कारण से।

Mojibake: बेमेल का लक्षण

Mojibake यादृच्छिक विराम चिह्न, बचे हुए लैटिन अक्षर, या रिप्लेसमेंट कैरेक्टर जैसा लगता है जहाँ असली शब्द होने चाहिए। आम कारण: UTF-8 घोषित करना जबकि फ़ाइल पुराने एन्कोडिंग में सेव हुई, या charset छोड़कर ब्राउज़र के सही अनुमान की उम्मीद। एन्कोडिंग जोड़ी ठीक करें — meta प्लस फ़ाइल सेव — बजाय अक्षरों को हमेशा के लिए फिर से टाइप करके «ठीक» करने के।

lang charset नहीं है

html पर (और कभी-कभी खास तत्वों पर) lang attribute स्क्रीन रीडर, हाइफ़नेशन और खोज टूल्स को भाषा समझने में मदद करता है। Charset बाइट डिकोडिंग संभालता है। आमतौर पर दोनों चाहिए: भाषा पहचान के लिए lang, एन्कोडिंग के लिए charset। सिर्फ इसलिए charset न हटाएँ कि आपने पहले से lang="fa" या lang="ar" सेट कर दिया।

सर्वर और वास्तविक डिप्लॉयमेंट (शुरुआती नोट)

प्रोडक्शन सर्वर HTTP हेडर में Content-Type charset भी भेज सकते हैं। इस कोर्स के लिए पहले HTML meta और UTF-8 सेव की आदत मजबूत करें। जब लाइव साइट आपकी meta से असहमत हो, मेंटर से हेडर जाँचने को कहें — लेकिन ज़्यादातर लोकल अभ्यास समस्याएँ एडिटर सेव एन्कोडिंग या गायब meta टैग की होती हैं।

अपने एडिटर में अभ्यास

  1. head के ऊपर <meta charset="UTF-8"> वाला पेज बनाएँ।
  2. गैर-अंग्रेज़ी अक्षर और एक emoji वाला वाक्य जोड़ें।
  3. पुष्टि करें कि एडिटर स्टेटस बार UTF-8 कहता है, फिर सहेजें।
  4. ब्राउज़र में पेज खोलें और पुष्टि करें कि अक्षर सही दिखते हैं।
  5. (वैकल्पिक, सावधानी से) एक कॉपी पुराने एन्कोडिंग में सहेजें, फिर खोलें, और mojibake देखें — फिर UTF-8 बहाल करें ताकि आप विफलता मोड पहचान सकें।

आसान गलतियाँ

  • meta charset भूलना और ब्राउज़र की किस्मत पर भरोसा
  • UTF-8 घोषित करते हुए फ़ाइल को पुराने एन्कोडिंग में सहेजना
  • विशाल head में charset meta बहुत देर से रखना
  • Charset को दृश्य पेज title या lang से भ्रमित करना
  • मान लेना कि emoji समस्याएँ हमेशा «HTML बग» हैं जबकि असली कारण एन्कोडिंग है
  • Mojibake को lang हटाकर «ठीक» करना बजाय UTF-8 सेव + meta सुधारने के

सारांश

  • Charset घोषित करता है कि HTML फ़ाइल के बाइट को कैरेक्टर में कैसे डिकोड करें
  • लगभग सभी नए पेजों के लिए UTF-8 इस्तेमाल करें और meta charset head में जल्दी रखें
  • फ़ाइल UTF-8 सहेजें ताकि घोषणा और डिस्क एन्कोडिंग मेल खाएँ
  • lang भाषा नाम देता है; charset एन्कोडिंग — अलग काम
  • Mojibake आमतौर पर एन्कोडिंग बेमेल का मतलब है, रहस्यमय टैग विफलता नहीं

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
6
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी