कंप्यूटरप्रोग्रामिंग

UTF-8 - वर्ण एन्कोडिंग

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

कोडिंग प्रपत्र

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

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

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

nenalozheniya सिद्धांत

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

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

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

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

संगति

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

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

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

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

चर लंबाई

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

ASCII

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

आवेदन के क्षेत्र

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

एक्सएमएल UTF-8 एन्कोडिंग के लिए पूर्ण समर्थन के साथ पहली मानक बन गया है। मानक संगठनों को भी यह सलाह देते हैं। URL का पता ASCII-वर्ण से अलग है में समर्थन समस्या का समाधान जब संघ W3C और IETF इंजीनियरिंग समूह सब से कोडिंग पर एक समझौते के लिए आया था था URL पतों को UTF-8 में विशेष रूप से।

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

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

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

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

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

लाभों की तुलना करें

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

वर्ण एन्कोडिंग योजना

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

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

UTF-8 एन्कोडिंग सेट करने के लिए कैसे

एचटीएमएल कोडिंग UTF-8 निम्न कोड के साथ स्थापित किया गया है:

सिर

मेटा http-समतुल्य = "सामग्री प्रकार" सामग्री = "text / html; charset = utf-8" ˃

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

˂? Php

error_reporting (-1);

शीर्ष लेख ( "सामग्री प्रकार: text / html; charset = utf-8 ');

एक MySQL डेटाबेस UTF-8 एन्कोडिंग सेट किया गया है करने के लिए कनेक्ट करने के लिए:

˂? Php

mysql_set_charset ( 'UTF8');

सीएसएस फ़ाइल एन्कोडिंग इस प्रकार UTF-8 वर्ण निर्दिष्ट किया जाता है है:

@ अक्षरसेट "utf-8";

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

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

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

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

वैश्वीकरण, जहां राजनीतिक और भाषाई सीमाओं मिट जाता है के संदर्भ में, वर्ण सेट है कि स्थानीय विशेषताओं, कम इस्तेमाल के हैं। यूनिकोड एक एकल वर्ण सेट है कि सभी स्थानीयकरणों समर्थन करता है। एक UTF-8 - यूनिकोड का उचित कार्यान्वयन है, जिनमें से एक उदाहरण:

  • यह ASCII एन्कोडिंग के साथ संगतता सहित उपकरण, की एक विस्तृत श्रृंखला का समर्थन करता है;
  • यह विरूपण डेटा के लिए प्रतिरोधी है;
  • सरल और इलाज में प्रभावी;
  • मंच स्वतंत्र है।

UTF-8 बहस एन्कोडिंग या वर्ण सेट का क्या फार्म के बारे में बेहतर है के आगमन के साथ, यह व्यर्थ हो जाता है।

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hi.birmiss.com. Theme powered by WordPress.