साइट खोज

यूटीएफ -8 - कैरेक्टर एन्कोडिंग

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

कोडिंग के रूप

कंप्यूटर न सिर्फ संख्याओं के साथ काम करते हैंसार गणितीय वस्तुओं, लेकिन निश्चित आकार की जानकारी के भंडारण और प्रसंस्करण की इकाइयों के संयोजन के रूप में - बाइट्स और 32-बिट शब्द वर्णों को संख्याओं के द्वारा किस प्रकार दर्शाया जाता है, यह निर्धारित करते समय एन्कोडिंग मानक को ध्यान में रखना चाहिए

कंप्यूटर सिस्टम में, पूर्णांक में संग्रहीत होते हैंस्मृति बिट्स के आकार में 8 बिट (1 बाइट), 16 या 32 बिट्स प्रत्येक यूनिकोड एन्कोडिंग फॉर्म यह निर्धारित करता है कि मेमोरी सेल्स का कौन सा क्रम एक विशेष वर्ण के अनुरूप एक पूर्णांक का प्रतिनिधित्व करता है। मानक यूनिकोड वर्णों के एन्कोडिंग के तीन अलग-अलग रूप प्रदान करता है: 8, 16 और 32-बिट ब्लॉक तदनुसार, उन्हें utf-8, UTF-16 और UTF-32 कहा जाता है। यूटीएफ नाम का यूनिकोड रूपांतरण स्वरूप है। प्रत्येक एन्कोडिंग के तीन रूप यूनिकोड वर्णों का प्रतिनिधित्व करने का एक समान साधन है, इसमें विभिन्न अनुप्रयोगों में फायदे हैं।

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

यूटीएफ 8 एन्कोडिंग

गैर-लागूकरण के सिद्धांत

प्रत्येक यूनिकोड एन्कोडिंग रूपों के साथ डिज़ाइन किया गया हैआंशिक ओवरलैपिंग की अयोग्यता को ध्यान में रखते हुए। उदाहरण के लिए, विंडोज़ 9 32 कोड के एक या दो बाइट्स से वर्ण उत्पन्न करता है। अनुक्रम की लंबाई पहले बाइट पर निर्भर करती है, इसलिए दो बाइट्स के अनुक्रम में अग्रणी बाइट मान और एक बाइट का छेद नहीं होता। हालांकि, एकल बाइट और अनुक्रम के समापन बाइट के मान समान हो सकते हैं। इसका मतलब है, उदाहरण के लिए, जब वर्ण डी (कोड 44) के लिए खोज करते हैं, तो आप गलती से इसे चरित्र "डी" (कोड 84 44) के दो बाइट्स के अनुक्रम के दूसरे भाग में प्रवेश कर सकते हैं। यह निर्धारित करने के लिए कि कौन सा क्रम सही है, प्रोग्राम को पिछले बाइट्स को ध्यान में रखना चाहिए।

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

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

यूनिकोड एनकोडिंग के गैर-प्रतिच्छेदन का दूसरा पहलूयह हर किरदार एक स्पष्ट रूप से परिभाषित सीमा पड़ता है। यह पिछले प्रतीकों में से एक अनिश्चित संख्या को स्कैन करने की आवश्यकता समाप्त। यह सुविधा कभी कभी आत्म clocking एन्कोडिंग कहा जाता है। कोड इकाइयों की विकृति केवल एक वर्ण की विकृति का परिचय देंगे, और आसपास के पात्रों अभी भी बरकरार हैं। 8 बिट प्रारूप रूपांतरण में, बाइट, 10xxxxxx के साथ शुरू (बाइनरी कोड में) करने के लिए सूचक अंक लगाना चाहते हैं कि प्रतीक के शुरू होने से एक से तीन रिवर्स संक्रमण के लिए आवश्यक है।

एन्कोडिंग यूटीएफ 8

संगति

यूनिकोड कंसोर्टियम पूरी तरह से सभी का समर्थन करता हैएनकोडिंग के 3 रूप यूटीएफ -8 और यूनिकोड का विरोध करना महत्वपूर्ण नहीं है, क्योंकि सभी रूपांतरण प्रारूप यूनिकोड वर्ण एन्कोडिंग रूपों के समान रूप से वैध रूप से लागू होते हैं।

बाइट उन्मुखीकरण

यूटीएफ -32 प्रतीक का प्रतिनिधित्व करने के लिए, आपको कोड की एक 32-बिट इकाई की आवश्यकता होती है जो यूनिकोड कोड से मेल खाता है। UTF-16 - एक से दो 16-बिट इकाइयों से और यूटीएफ -8 4 बाइट तक का उपयोग करता है।

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

परिवर्तनीय लंबाई

यूटीएफ -8 एक चर-लंबाई एन्कोडिंग है जिसमें से मिलकर8-बिट सूचना भंडारण इकाइयां जिनके उच्च-ऑर्डर बिट्स से संकेत मिलता है कि प्रत्येक एकल बाइट के अनुक्रम का कौन सा हिस्सा है। मूल्यों की एक श्रेणी को कोड अनुक्रम के पहले तत्व के लिए आवंटित किया जाता है, दूसरे के बाद के तत्वों के लिए। यह असंबद्ध एन्कोडिंग सुनिश्चित करता है

चरित्र एन्कोडिंग utf 8

ASCII

यूटीएफ -8 एन्कोडिंग पूरी तरह से एएससीआईआई कोड का समर्थन करता है(0x00-0x7F)। इसका अर्थ है कि यूनिकोड वर्ण यू + 0000-यू + 007 एफ एकल बाइट 0x00-0x7F यूटीएफ -8 में परिवर्तित हो जाते हैं और इस तरह एएससीआईआई से अप्रभेद्य हो जाते हैं। इसके अलावा, अस्पष्टता से बचने के लिए, 0x00-0x7F मानों को अब यूनिकोड वर्ण प्रतिनिधित्व के किसी भी बाइट में उपयोग नहीं किया जाता है। एएससीआईआई के अलावा गैर-आइडोग्राफिक प्रतीकों को सांकेतिकृत करने के लिए, दो बाइट्स का एक क्रम प्रयोग किया जाता है। U + 0800-U + FFFF के प्रतीक तीन बाइट्स के द्वारा प्रदर्शित किए जाते हैं, और यू + एफएफएफएफ से बड़े कोड वाले अतिरिक्त चार बाइट्स की आवश्यकता होती है।

आवेदन का दायरा

एन्कोडिंग यूटीएफ -8 आमतौर पर एचटीएमएल प्रोटोकॉल में पसंद किया जाता है और उसके समान है।

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

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

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

एचटीएमएल एन्कोडिंग यूटीएफ 8

आत्म तुल्यकालन

अन्य बहु-बाइट एन्कोडिंग की तुलना में 8-बिट वर्ण प्रसंस्करण का उपयोग करते हुए एक वातावरण में, यूटीएफ -8 के निम्नलिखित फायदे हैं:

  • कोड अनुक्रम के पहले बाइट में इसकी लंबाई के बारे में जानकारी है। इससे प्रत्यक्ष खोज की दक्षता बढ़ जाती है
  • चरित्र की शुरुआत को खोजने के लिए आसान है, क्योंकि प्रारंभिक बाइट मूल्यों की एक निश्चित सीमा तक सीमित है।
  • बाइट मूल्यों का कोई प्रतिच्छेदन नहीं है

फायदे की तुलना

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

कैरेक्टर एन्कोडिंग स्कीम

चरित्र एन्कोडिंग स्कीम में एक फॉर्म होता हैचरित्र एन्कोडिंग, और कोड इकाइयों के बाइट-बाय-पिक्सेल व्यवस्था की एक विधि। यूनिकोड मानक के साथ एन्कोडिंग स्कीम का निर्धारण करने के लिए, प्रारंभिक बाइट ऑर्डर मार्क (बीओएम, बाइट ऑर्डर मार्क) का उपयोग प्रदान किया गया है।

जब BOM utf-8 में सक्षम है, लेबल फ़ंक्शनकेवल एन्कोडिंग फॉर्म के उपयोग के संकेत के द्वारा सीमित है यूटीएफ -8 में बाइट्स के ऑर्डर का निर्धारण करने में कोई समस्या नहीं है, क्योंकि इसकी कोडिंग इकाई का आकार एक बाइट है। इस एन्कोडिंग फॉर्म के लिए बीओएम का उपयोग अनिवार्य है और न ही इसकी सिफारिश की गई है। बीओएम अन्य एनकोडिंग से परिवर्तित ग्रंथों में हो सकता है जो बाइट क्रम चिह्न का उपयोग करते हैं, या यूटीएफ -8 एन्कोडिंग हस्ताक्षर के लिए। यह ईएफ के 3 बाइट्स का अनुक्रम है16 बी बी16 बीएफ16.

यूटीएफ 8 एन्कोडिंग में फाइल

यूटीएफ -8 एन्कोडिंग को कैसे सेट करें

एचटीएमएल में, यूटीएफ -8 एन्कोडिंग निम्न कोड का उपयोग करके सेट किया गया है:

सिर

˂meta http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; वर्णसेट = यूटीएफ -8" ˂

PHP में, यूफ़ -8 एन्कोडिंग त्रुटि आउटपुट स्तर के मूल्य को सेट करने के बाद फाइल के शुरुआती शीर्ष में हेडर () फ़ंक्शन का उपयोग करके निर्दिष्ट किया जाता है:

˂? पीएचपी

त्रुटि_रेपोर्टिंग (-1);

शीर्ष लेख ("सामग्री-प्रकार: पाठ / html; वर्णसेट = यूटीएफ -8");

MySQL डाटाबेस से जुड़ने के लिए, यूटीएफ -8 एन्कोडिंग निम्नानुसार सेट है:

˂? पीएचपी

mysql_set_charset ("utf8");

सीएसएस फ़ाइलों में, यूटएफ -8 एन्कोडिंग वर्ण निम्नानुसार निर्दिष्ट है:

@ चेर्ससेट "यूटीएफ -8";

यूटीएफ 8 के रूप में सहेजें

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

आप विंडोज नोटपैड में फाइल को यूटीएफ -8 एन्कोडिंग में सहेज सकते हैं। मेनू आइटम "फ़ाइल - के रूप में सहेजें ..." का चयन करने के बाद आवश्यक एन्कोडिंग फ़ॉर्म सेट करें और फ़ाइल को यूटीएफ -8 एन्कोडिंग में सहेजें।

नोटपैड + + टेक्स्ट एडिटर में, यदि एन्कोडिंग यूटीएफ -8 से भिन्न है, तो एन्कोडिंग बदलें और यूटफ़् 8 एन्कोडिंग में मेनू आइटम "बीओएम के बिना यूटीएफ -8 में कन्वर्ट" के माध्यम से सहेजें।

बोम के बिना एन्कोडिंग यूटीएफ 8

कोई विकल्प नहीं है

वैश्वीकरण के संदर्भ में, जब राजनीतिक औरभाषा की सीमाएं मिटा दी जाती हैं, ऐसे प्रतीकों के सेट होते हैं जिनमें स्थानीय विशेषताएं कम उपयोगी होती हैं। यूनिकोड एकमात्र वर्ण सेट है जो सभी स्थानीयकरणों का समर्थन करता है। और यूटीएफ -8 यूनिकोड के सही कार्यान्वयन का एक उदाहरण है, जो:

  • एएससीआईआई एन्कोडिंग के साथ संगतता सहित उपकरणों की एक विस्तृत श्रृंखला का समर्थन करता है;
  • डेटा भ्रष्टाचार के लिए प्रतिरोधी है;
  • प्रसंस्करण में सरल और प्रभावी;
  • मंच पर निर्भर नहीं करता है

यूटफ़ -8 की चर्चा के बारे में जो एन्कोडिंग या चरित्र सेट का बेहतर है, वे अर्थहीन हो गए।

</ p>
  • मूल्यांकन: