दिलचस्प पोस्ट
AngularJS यूनिट टेस्ट में $ मॉडल का मजाक उड़ा रहा है क्या "* लागू" परिवार वास्तव में वेक्टर नहीं है? GitHub रेपो से एक फ़ोल्डर या निर्देशिका डाउनलोड करें जब फाइल करने के लिए पुनः निर्देशित किया जाता है तो stdout स्पष्ट रूप से फ्लशिंग की आवश्यकता क्यों है? Android स्टूडियो प्रोजेक्ट के लिए मेरे .gitignore में क्या होना चाहिए? एक गीट रेपो में फाइल रखें, लेकिन परिवर्तनों को ट्रैक न करें JQuery.ajax के बाद अनपेक्षित टोकन बृहदान्त्र JSON रूट के साथ ASP.Net MVC हैंडलिंग सेगमेंट एंड्रॉइड लॉक स्क्रीन विजेट घंटों से 'एक्स' मात्रा जोड़ें कब और क्यों प्रतिनिधियों का उपयोग करें? पुश नोटिफिकेशन द्वारा लॉन्च किए जाने वाले ऐप को डीबग करना JQuery में विशेषता जोड़ना क्षेत्र: IOError: अमान्य मोड ('डब्ल्यू') या फ़ाइल नाम Google की एंड्रॉइड ओपनजीएल ट्यूटोरियल गलत रेखीय बीजगणित का शिक्षण है?

<मेटा वर्णसेट = "यूटीएफ -8"> बनाम <मेटा http-equiv = "सामग्री-प्रकार">

एचटीएमएल 5 डॉकटाइप के लिए वर्णसेट को परिभाषित करने के लिए, मुझे किस नोटेशन का उपयोग करना चाहिए?

  1. कम:

    <meta charset="utf-8" /> 
  2. लंबा:

     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

वेब के समाधान से एकत्रित समाधान "<मेटा वर्णसेट = "यूटीएफ -8"> बनाम <मेटा http-equiv = "सामग्री-प्रकार">"

HTML5 में, वे समकक्ष हैं। कम एक का प्रयोग करें, यह याद रखना आसान है और टाइप करें। ब्राउज़र समर्थन ठीक है क्योंकि यह पिछली संगतता के लिए डिज़ाइन किया गया था।

मेटा वर्णसेट घोषणा के दोनों रूप समकक्ष हैं और उन्हें ब्राउज़रों में एक ही काम करना चाहिए। लेकिन, आपके वेब फ़ाइलों को यूटीएफ -8 के रूप में सेट करते समय याद रखने की कुछ चीजें हैं जिन्हें आपको याद रखना चाहिए:

  1. बाइट-ऑर्डर चिह्न (बीओएम) के बिना यूटीएफ -8 एन्कोडिंग में अपनी फाइल को सहेजें।
  2. मेटा वर्णसेट (ऊपर की तरह) का उपयोग करते हुए अपनी HTML फ़ाइलों में एन्कोडिंग घोषित करें।
  3. आपके वेब सर्वर को आपकी फ़ाइलों की सेवा करनी चाहिए , सामग्री-प्रकार HTTP हेडर में UTF-8 एन्कोडिंग घोषित करना।

अपाचे सर्वर डिफ़ॉल्ट रूप से ISO-8859-1 में फाइलों की सेवा के लिए कॉन्फ़िगर किया गया है, इसलिए आपको अपनी .htaccess फ़ाइल में निम्न पंक्ति जोड़नी होगी:

 AddDefaultCharset UTF-8 

इससे अपाचे को आपकी फाइल को सामग्री-प्रकार रिस्पांस हेडर में यूटीएफ -8 एन्कोडिंग घोषित करने के लिए कॉन्फ़िगर किया जाएगा, लेकिन आपकी फाइल यूटीएफ -8 (बम के बिना) में शुरू होनी चाहिए।

नोटपैड आपकी फ़ाइलों को BOM के बिना UTF-8 में सहेज सकता है। एक निशुल्क संपादक जो नोटपैड ++ हो सकता है प्रोग्राम मेनू बार पर, "एन्कोडिंग> यूओटीएफ -8 के बिना यूओटीएक्स -8 का चयन करें" आप फ़ाइलों को खोल सकते हैं और उन्हें यूटीएफ -8 में "एन्कोडिंग> कन्वर्ट टू यूटीएफ -8 बीओएम" के जरिए पुन: सहेज सकते हैं।

विकिपीडिया पर बाइट ऑर्डर मार्क (बीओएम) पर अधिक ।

कम एक के साथ जाने का एक अन्य कारण यह है कि यह अन्य उदाहरणों से मेल खाता है, जहां आप मार्कअप में कोई वर्ण सेट निर्दिष्ट कर सकते हैं। उदाहरण के लिए:

 <script type="javascript" charset="UTF-8" src="/script.js"></script> <p><a charset="UTF-8" href="http://example.com/">Example Site</a></p> 

संगतता त्रुटियों को कम करने और कोड को अधिक पठनीय बनाने में मदद करता है।

नोट करें कि वर्णसेट विशेषता केस-असंवेदनशील है। आप यूटीएफ -8 या यूटीएफ -8 का प्रयोग कर सकते हैं, हालांकि यूटीएफ -8 स्पष्ट, अधिक पठनीय और अधिक सटीक है।

साथ ही, मेटा वर्णसेट विशेषता या पेज हेडर में UTF-8 के अलावा किसी भी मूल्य का उपयोग करने में बिल्कुल कोई कारण नहीं है। यूटीएफ -8 1 999 में HTML4 के बाद से वेब दस्तावेजों के लिए डिफ़ॉल्ट एन्कोडिंग है और आधुनिक वेब पेज बनाने का एकमात्र व्यावहारिक तरीका है।

इसके अलावा आपको यूटीएफ -8 में एचटीएमएल संस्थाओं का उपयोग नहीं करना चाहिए। कॉपीराइट प्रतीक जैसे वर्ण सीधे टाइप किए जाने चाहिए आपके द्वारा उपयोग किए जाने वाली एकमात्र संस्थाएं 5 आरक्षित मार्कअप वर्णों के लिए हैं: कम से कम, एम्परसेंड, प्राइम, डबल प्राइम संस्थाओं को एक एचटीएमएल पार्सर की ज़रूरत है, जिस पर आप हमेशा आगे बढ़ने का इस्तेमाल नहीं करना चाहते हैं, वे त्रुटियों का परिचय देते हैं, अपना कोड कम पठनीय बनाते हैं, अपने फ़ाइल आकार में वृद्धि करते हैं, और कभी-कभी विभिन्न ब्राउज़रों में गलत ढंग से व्याख्या करते हैं, जिनके आधार पर आपके द्वारा इस्तेमाल की जाने वाली संस्थाओं पर निर्भर करता है। जानें कि कैसे टाइप करें / कॉपीराइट, ट्रेडमार्क, ओपन कोट, क्लोज़ उद्धरण, एस्ट्रोफी, एम डैश, एन डैश, बुलेट, यूरो और किसी भी अन्य पात्रों को आप अपनी सामग्री में मुड़ें और अपने कोड में उन वास्तविक अक्षरों का उपयोग करें। मैक में एक कैरेक्टर व्यूअर होता है जिसे आप कीबोर्ड सिस्टम वरीयता में चालू कर सकते हैं, और आप ढूंढ सकते हैं और फिर आपको अपनी जरूरत के पात्रों को खींच कर छोड़ सकते हैं, या कुंजीपटल व्यूअर का उपयोग करके यह देखने के लिए कि कौन सी कुंजी टाइप करें उदाहरण के लिए, ट्रेडमार्क विकल्प + 2 है यूटीएफ -8 में हर लिखित मानव भाषा से सभी वर्ण और प्रतीकों को शामिल किया गया है। इसलिए उपयोग करने के लिए कोई बहाना नहीं है – एक एम डैश की बजाय यह विराम चिह्न और टाइपोग्राफी के नियमों को भी जानने के लिए एक बुरा विचार नहीं है … उदाहरण के लिए, यह जानने के लिए कि एक अवधि एक करीबी उद्धरण के अंदर जाती है, बाहर नहीं।

सामग्री प्रकार और एन्कोडिंग जैसी कुछ चीजों के लिए एक टैग का प्रयोग करना बेहद विडंबना है, क्योंकि इन चीजों को जानने के बिना, आप मेटा टैग के मूल्य प्राप्त करने के लिए फ़ाइल को पार्स नहीं कर सके।

नहीं, यह सच नहीं है। ब्राउज़र ब्राउज़र की डिफ़ॉल्ट एन्कोडिंग के रूप में फ़ाइल को पार्सिंग शुरू करता है, या तो यूटीएफ -8 या आईएसओ -8859-1। चूंकि यूएस-एएससीआईआई दोनों आईएसओ -8859-1 और यूटीएफ -8 दोनों का सबसेट है, ब्राउज़र ब्राउज़र किसी भी तरह से ठीक कह सकता है … यह वही है। जब ब्राउज़र मेटा वर्णसेट टैग का सामना करता है, यदि एन्कोडिंग ब्राउज़र पहले से उपयोग कर रहा है, तो उसमें से निर्दिष्ट एन्कोडिंग में पेज पुनः लोड करता है। यही कारण है कि हमने शीर्ष टैग पर शीर्ष पर मेटा वर्णसेट टैग डाल दिया है, कुछ और भी पहले, यहां तक ​​कि शीर्षक भी। इस तरह आप अपने शीर्षक में यूटीएफ -8 अक्षर का उपयोग कर सकते हैं।

आपको अपनी फाइल (यू) के बिना यूटीएफ -8 एन्कोडिंग में सहेजना होगा

यह कड़ाई से सच नहीं है यदि आपके पास आपके दस्तावेज़ में यूएस-एएससीआईआई अक्षर हैं, तो आप इसे यूएस-एएससीआईआई के रूप में सहेज सकते हैं और इसे यूटीएफ -8 के रूप में प्रदान कर सकते हैं, क्योंकि यह एक सबसेट है लेकिन अगर युनिकोड वर्ण हैं, तो आप सही हैं, आपको बिना एसओटी -8 के रूप में सहेजना होगा।

यदि आप एक अच्छा पाठ संपादक चाहते हैं जो आपकी फ़ाइलों को यूटीएफ -8 में बचाएगा, तो मैं नोटपैड ++ की सिफारिश करता हूं।

मैक पर, मैक ऐप स्टोर से बेर बोन्स टेक्स्टड्राँगलर (फ्री) या बेयर बोन्स बीबीएडिट का उपयोग करें जो मैक ऐप स्टोर में $ 39.99 के लिए है … इस तरह के एक महान उपकरण के लिए बहुत सस्ता है या तो ऐप में, दस्तावेज़ विंडो के तल पर एक मेनू होता है जहां आप दस्तावेज़ एन्कोडिंग निर्दिष्ट करते हैं और आप आसानी से "UTF-8 no BOM" चुन सकते हैं और निश्चित रूप से आप प्राथमिकताओं में नए दस्तावेज़ों के लिए डिफ़ॉल्ट के रूप में सेट कर सकते हैं।

लेकिन अगर आपका वेबसर्वर HTTP हेडर में एन्कोडिंग का काम करता है, जो कि अनुशंसित है, दोनों [मेटा टैग] अनावश्यक हैं

यह गलत है आपको निश्चित रूप से HTTP हेडर में एन्कोडिंग सेट करना चाहिए, लेकिन आपको इसे मेटा वर्णसेट विशेषता में भी सेट करना चाहिए ताकि उपयोगकर्ता को उपयोगकर्ता द्वारा सहेजा जा सके, ब्राउजर के बाहर स्थानीय भंडारण पर और उसके बाद बाद में खोला जाए, जिस स्थिति में एन्कोडिंग का केवल संकेत मौजूद होगा जो मेटा वर्णसेट विशेषता है आपको एक ही कारण के लिए एक आधार टैग भी सेट करना चाहिए … सर्वर पर, बेस टैग अनावश्यक है, लेकिन जब स्थानीय भंडारण से खोला जाता है, आधार टैग पृष्ठ को काम करने में सक्षम बनाता है जैसे कि यह सर्वर पर है, सभी के साथ जगह में संपत्ति और इतने पर, कोई टूटी हुई कड़ियों नहीं।

AddDefaultCharset UTF-8

या आप बस ऐसे विशेष प्रकार के फ़ाइल प्रकारों की एन्कोडिंग बदल सकते हैं:

 AddType text/html;charset=utf-8 html 

यूटीएफ -8 और लैटिन -1 (आईएसओ -885 9 -1) दोनों फाइलों की सेवा के लिए एक टिप यूटीएफ -8 फाइलें "टेक्स्ट" एक्सटेंशन और लैटिन -1 फाइलें "टेक्सटी" को देना है।

 AddType text/plain;charset=iso-8859-1 txt AddType text/plain;charset=utf-8 text 

अंत में, यूनिक्स लाइन के अंत के साथ अपने दस्तावेज़ सहेजने पर विचार करें, लीगेसी डॉस या (क्लासिक) मैक लाइन एंडिंग्स, जो मदद नहीं करते हैं और चोट लगी हैं, विशेष रूप से रेखा से नीचे के रूप में हम उन विरासत प्रणालियों से आगे और आगे प्राप्त करते हैं। वैध एचटीएमएल 5, यूटीएफ -8 एन्कोडिंग और यूनिक्स लाइन एंडिंग के साथ एक एचटीएमएल दस्तावेज़ एक काम अच्छी तरह से किया गया है। आप कई संदर्भों में उस दस्तावेज़ को साझा और संपादित और संग्रहित और पढ़ और ठीक व भरोसा कर सकते हैं। यह भाषा फेंका है यह डिजिटल पेपर है

<meta charset="utf-8"> HTML5 के लिए / के साथ पेश किया गया था

जैसा कि दस्तावेज में उल्लिखित है, दोनों वैध हैं। हालांकि, <meta charset="utf-8"> केवल HTML5 के लिए है (और लिखना / याद रखना आसान)

उचित समय में, पुरानी शैली निकट भविष्य में पदावनत होने के लिए बाध्य होती है । मैं नये <meta charset="utf-8"> चिपक जाता था

केवल एक ही रास्ता है, लेकिन ऊपर तकनीक के मामले में, यह पुराना (वास्तव में, बहुत तेज़ है)

प्रलेखन: एचटीएमएल मेटा वर्णसेट विशेषता-डब्ल्यू 3 स्कूल

जबकि अन्य उत्तर नहीं चुनते हैं, मुझे लगता है कि निम्नलिखित उल्लेख के योग्य है।

  1. "लंबा" ( http-equiv ) नोटेशन और "छोटा" एक बराबर है, जो भी पहले जीतता है;
  2. वेब सर्वर हेडर सभी <meta> टैग को ओवरराइड कर देंगे;
  3. बीओएम (बाइट ऑर्डर मार्क) सब कुछ ओवरराइड कर देगा, और कई मामलों में यह एचटीएमएल 4 (और शायद अन्य सामान भी) को प्रभावित करेगा;
  4. यदि आप किसी एन्कोडिंग को नहीं घोषित करते हैं, तो संभवतः आप "टेक्स्टबैक पाठ एन्कोडिंग" में अपना टेक्स्ट प्राप्त करेंगे जो आपके ब्राउज़र को परिभाषित किया गया है। फ़ायरफ़ॉक्स में और न ही क्रोम में यह यूटीएफ -8 है;
  5. अन्य सुरागों की अनुपस्थिति में ब्राउज़र आपके दस्तावेज़ को पढ़ने का प्रयास करेगा जैसे कि वह एन्कोडिंग प्राप्त करने के लिए एएससीआईआई में था, इसलिए आप किसी भी अजीब एनकोडिंग का उपयोग नहीं कर सकते हैं (हालांकि, बोम के साथ यूटीएफ -16 करना चाहिए);
  6. जबकि ऐनक कहते हैं कि एन्कोडिंग घोषणापत्र, दस्तावेज के पहले 512 बाइट्स के भीतर होना चाहिए, अधिकांश ब्राउज़र उस से अधिक पढ़ने की कोशिश करेंगे।

आप echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500 चला सकते हैं। echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500 echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500 echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500 और localhost:4500 ब्राउज़र पर अपने ब्राउज़र की ओर इशारा करते हुए localhost:4500 (बेशक आप भागों को बदलना या निकालना चाहते हैं। बीओएम भाग \xef\xbb\xbf । अपने शेल की एन्कोडिंग से सावधान रहें।)

कृपया ध्यान दें कि यह बहुत महत्वपूर्ण है कि आप स्पष्ट रूप से एन्कोडिंग घोषित करें। ब्राउज़र अनुमानों को लेकर सुरक्षा संबंधी समस्याएं हो सकती हैं

HTML5 का उपयोग करते समय वेब ब्राउज़र के लिए <meta charset="utf-8" /> का उपयोग करें

एचटीएमएल 4 या एक्सएचटीएमएल, या पुराने डोम पार्सर के लिए, जब डीओएमडीटाइन में PHP का उपयोग करते हैं तो <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> का उपयोग करें

मोज़िला फाउंडेशन और साइटपॉइंट पर आधारित कुछ समाचार हैं

इस मूल्य का उपयोग न करें ( http-equiv=content-type ) क्योंकि यह अप्रचलित है < meta > तत्व पर charset विशेषता को प्राथमिकता दें