दिलचस्प पोस्ट
क्या स्विफ्ट में पहुंच संशोधक हैं? एसक्यूएल सर्वर डेटमैंट पसंद का चयन करें? अजगर: कई संदर्भ प्रबंधकों पर "के साथ" ब्लॉक बनाएं अनुरोध हैडर फ़ील्ड ऐक्सेस-कंट्रोल-एप-हेडर्स द्वारा प्रवेश-नियंत्रण-अनुमति-हेडर की अनुमति नहीं है वीबीए मैक्रो के साथ कार्यपुस्तिका के भीतर एक एक्सेल टेबल पर एसक्यूएल प्रश्नों को निष्पादित करना HTML.ActionLink विधि jQuery के पोस्ट का अनुरोध (नहीं AJAX) मेरी मैक्रो वैरिएबल का हल क्यों नहीं होगा? कन्स्ट्रक्टरों के लिए मॉकिटो के साथ इकाई परीक्षण डेल्फी भाषा सुविधाओं और संस्करण की सूची जिसमें वे शामिल / बहिष्कृत किए गए थे अक्षांश और देशांतर का उपयोग करते समय 403 मनाही त्रुटि प्राप्त करना: जियोओकोडिंग एचटीएमएल ईमेल लिखते समय सर्वोत्तम अभ्यास और विचार यदि आप एक चर जावास्क्रिप्ट में एक सरणी है, तो आप कैसे जांच करते हैं? एक OSX निष्पादन योग्य करने के लिए कन्वर्ट। मैं ASP.net/C# ऐप कॉन्फ़िग फ़ाइल मान में मान के लिए एक एपरसैंड कैसे जोड़ सकता / सकती हूं?

यूनिकोड, यूटीएफ -8, यूटीएफ -16 क्या है?

यूनिकोड का आधार क्या है और यूटीएफ -8 या यूटीएफ -16 की आवश्यकता क्यों है? मैंने इसे Google पर शोध किया है और यहां पर भी खोज की है लेकिन यह मेरे लिए स्पष्ट नहीं है

वीएसएस में फाइल की तुलना करते समय, कभी-कभी एक संदेश होता है जिसमें कहा गया है कि दो फाइलों में यूटीएफ की भिन्नता है। ऐसा क्यों होगा?

कृपया सरल शब्दों में बताएं।

Solutions Collecting From Web of "यूनिकोड, यूटीएफ -8, यूटीएफ -16 क्या है?"

हमें यूनिकोड की आवश्यकता क्यों है?

(नहीं भी) शुरुआती दिनों में, सभी मौजूद थे ASCII यह ठीक था, क्योंकि सभी को कभी भी ज़रूरत होती थी कुछ वाक्य, विराम चिह्न, संख्याएं और अक्षरों जैसे कि इस वाक्य में। दुर्भाग्य से, आज की वैश्विक आदान-प्रदान और सोशल मीडिया की अजीब दुनिया नहीं थी, और यह एक ही दस्तावेज़ में अंग्रेजी, العربية, 汉语, עִבְרִית, ελληνικά, और ភាសាខ្មែរ को देखने के लिए बहुत असामान्य नहीं है (मुझे आशा है कि मैंने किसी भी पुराने ब्राउज़र को नहीं तोड़ दिया )।

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

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

स्मृति विचार

तो कितने बाइट इन एन्कोडिंग में वर्णों तक पहुंच देते हैं?

  • UTF-8:
    • 1 बाइट: स्टैंडर्ड एएससीआईआई
    • 2 बाइट्स: अरबी, हिब्रू, अधिकांश यूरोपीय स्क्रिप्ट (सबसे विशेषकर जॉर्जियाई को छोड़कर)
    • 3 बाइट्स: बीएमपी
    • 4 बाइट्स: सभी यूनिकोड वर्ण
  • UTF-16:
    • 2 बाइट्स: बीएमपी
    • 4 बाइट्स: सभी यूनिकोड वर्ण

यह अब उल्लेखनीय है कि बीएमपी में जो वर्ण नहीं हैं, उनमें प्राचीन स्क्रिप्ट, गणितीय प्रतीकों, संगीत चिह्न, और दुर्लभ चीनी / जापानी / कोरियाई (सीजेके) वर्ण शामिल हैं।

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

एन्कोडिंग मूल बातें

नोट: यदि आप जानते हैं कि UTF-8 और UTF-16 एन्कोडेड हैं, तो व्यावहारिक अनुप्रयोगों के लिए अगले अनुभाग पर जाएं।

  • UTF-8: मानक ASCII (0-127) वर्णों के लिए, यूटीएफ -8 कोड समान होते हैं। यह यूटीएफ -8 आदर्श बनाता है यदि मौजूदा एएससीआईआई पाठ के साथ पीछे की संगतता आवश्यक है। अन्य पात्रों को कहीं भी 2-4 बाइट्स की आवश्यकता होती है। यह इन बाइट्स में से प्रत्येक में कुछ बिट्स आरक्षित करके किया जाता है यह इंगित करने के लिए कि यह एक बहु-बाइट वर्ण का हिस्सा है। विशेष रूप से, एएससीआईआई वर्णों से मुठभेड़ से बचने के लिए प्रत्येक बाइट का पहला बिट 1 है।
  • यूटीएफ -16: वैध बीएमपी पात्रों के लिए, यूटीएफ -16 का प्रतिनिधित्व केवल इसका कोड बिंदु है हालांकि, गैर-बीएमपी पात्रों के लिए यूटीएफ -16 में सरोगेट जोड़े शामिल हैं । इस मामले में दो दो बाइट अंशों का एक संयोजन गैर-बीएमपी वर्ण को मैप करता है। ये दो-बाइट अंश बीएमपी संख्यात्मक श्रेणी से आते हैं, लेकिन बीएमपी वर्णों के रूप में अमान्य होने के लिए यूनिकोड मानक द्वारा गारंटी दी जाती है। इसके अतिरिक्त, यूटीएफ -16 के बाद से इसके मूल इकाई के रूप में दो बाइट्स हैं, यह अंत तकपन से प्रभावित है। क्षतिपूर्ति करने के लिए, एक आरक्षित बाइट ऑर्डर मार्क को एक डेटा स्ट्रीम की शुरुआत में रखा जा सकता है जो अंत्यता को दर्शाता है। इस प्रकार, यदि आप UTF-16 इनपुट पढ़ रहे हैं, और कोई अंत्यता निर्दिष्ट नहीं है, तो आपको इसके लिए जांचना होगा।

जैसा कि देखा जा सकता है, यूटीएफ -8 और यूटीएफ -16 एक-दूसरे के साथ संगत नहीं हैं। इसलिए यदि आप I / O कर रहे हैं, तो सुनिश्चित करें कि आप जानते हैं कि आप किस एन्कोडिंग का उपयोग कर रहे हैं! इन एन्कोडिंग पर अधिक जानकारी के लिए, कृपया यूटीएफ एफएक्यूएप देखें।

व्यावहारिक प्रोग्रामिंग विचार

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

अनुशंसित / डिफ़ॉल्ट / प्रभावशाली एन्कोडिंग: जब UTF का उपयोग करने का विकल्प दिया जाता है, तो उस वातावरण के लिए अनुशंसित मानकों का पालन करना सबसे अच्छा होता है, उदाहरण के लिए, यूटीएफ -8 वेब पर प्रभावी है, और एचटीएमएल 5 के बाद से, यह अनुशंसित एन्कोडिंग रहा है इसके विपरीत, दोनों। नेट और जावा वातावरण UTF-16 वर्ण प्रकार पर स्थापित किए गए हैं। Confusingly (और गलत तरीके से), संदर्भ अक्सर "यूनिकोड एन्कोडिंग" के लिए किया जाता है, जो आम तौर पर किसी दिए गए वातावरण में प्रमुख यूटीएफ एन्कोडिंग को संदर्भित करता है।

पुस्तकालय समर्थन: क्या एन्कोडिंग आप समर्थन कर रहे हैं पुस्तकालयों रहे हैं? क्या वे कोने के मामलों का समर्थन करते हैं? चूंकि आवश्यकता आविष्कार की मां है, यूटीएफ -8 पुस्तकालय आमतौर पर 4-बाइट पात्रों को ठीक से समर्थन देंगे, क्योंकि 1, 2 और 3 बाइट वर्ण अक्सर हो सकते हैं। हालांकि, सभी कथित यूटीएफ-16 पुस्तकालयों को सरोगेट जोड़ों का समर्थन नहीं किया जाता क्योंकि वे बहुत कम ही होते हैं।

वर्णों की गिनती: यूनिकोड में अक्षर के संयोजन में मौजूद हैं उदाहरण के लिए कोड बिंदु यू + 006 ई (एन), और यू + 0303 (एक संयोजन टिल्ड) फॉर्म ं, लेकिन कोड बिंदु यू + 00 एफ 1 फॉर्म ं। उन्हें समान दिखना चाहिए, लेकिन एक साधारण गिनती एल्गोरिथम पहले उदाहरण के लिए 2, उत्तरार्द्ध के लिए 1 लौटाएगा। यह जरूरी नहीं कि गलत है, लेकिन वांछित परिणाम भी नहीं हो सकता है

समानता के लिए तुलना: ए, ए, और ए एक ही दिखती है, लेकिन ये क्रमशः लैटिन, सिरिलिक और ग्रीक हैं। आपके पास भी सी और Ⅽ जैसे मामले हैं, एक अक्षर है, दूसरा रोमन संख्या। इसके अलावा, हमारे पास संयोजन अक्षर भी हैं जिन पर विचार करना है। अधिक जानकारी के लिए यूनिकोड में डुप्लिकेट अक्षर देखें।

सरोगेट जोड़े: ये अक्सर SO पर पर्याप्त रूप से आते हैं, इसलिए मैं कुछ उदाहरण लिंक प्रदान करूंगा:

  • स्ट्रिंग की लंबाई प्राप्त करना
  • किराए के जोड़ों को हटा रहा है
  • पालिंड्रोम की जांच

दूसरों ?:

  • यूनिकोड
    • दुनिया भर में वर्णित वर्णों का एक सेट है
  • UTF-8
    • यूनिकोड में सभी संभावित अक्षरों (कोड पॉइंट्स) को एन्कोडिंग करने में सक्षम एक अक्षर एन्कोडिंग
    • कोड इकाई 8-बिट है
    • यूनिकोड को सांकेतिकृत करने के लिए एक से चार कोड इकाइयों का उपयोग करें
    • " $ " (एक 8-बिट) के लिए 00100100 ; " ¢ " (दो 8-बिट) के लिए 11000010 10100010 ; "" के लिए 11100010 10000010 10101100 (तीन 8-बिट्स)
  • UTF-16
    • एक और चरित्र एन्कोडिंग
    • कोड इकाई 16-बिट है
    • यूनिकोड को सांकेतिक शब्दों में बदलना एक से दो कोड इकाइयों का उपयोग करें
    • " $ " (एक 16-बिट) के लिए 00000000 00100100 ; " 𤭢 " (दो 16 बिट्स) के लिए 11011000 01010010 11011111 01100010

यूनिकोड एक काफी जटिल मानक है। डरो मत, लेकिन कुछ काम के लिए तैयार रहें! [2]

क्योंकि एक विश्वसनीय संसाधन हमेशा की जरूरत है, लेकिन आधिकारिक रिपोर्ट बड़े पैमाने पर है, मैं निम्नलिखित को पढ़ने का सुझाव देता हूं:

  1. पूर्ण न्यूनतम सॉफ्टवेयर डेवलपर बिल्कुल, सकारात्मक रूप से यूनिकोड और कैरिएन्ट सेट्स के बारे में पता होना चाहिए (कोई बहाने नहीं!) स्टैक एक्सचेंज के सीईओ जोएल स्पोलस्की का परिचय
  2. बीएमपी और परे करने के लिए! एरिक मुल्लर, तकनीकी निदेशक के द्वारा एक ट्यूटोरियल तब, उपराष्ट्रपति बाद में, यूनिकोड कंसोर्टियम में (पहले 20 स्लाइड्स और आप कर रहे हैं)

एक संक्षिप्त विवरण:

कंप्यूटर बाइट्स पढ़ते हैं और लोगों को अक्षर पढ़ते हैं, इसलिए हम बाइट्स के लिए वर्णों को मैप करने के लिए एन्कोडिंग मानकों का उपयोग करते हैं। एएससीआईआई सबसे व्यापक रूप से इस्तेमाल किया मानक था, लेकिन केवल लैटिन (7 बिट / चरित्र 128 अलग-अलग वर्णों का प्रतिनिधित्व कर सकते हैं) को शामिल करता है यूनिकोड दुनिया में सभी संभव वर्णों को कवर करने के लिए एक मानक है (1,114,112 अक्षरों तक धारण कर सकते हैं, जिसका अर्थ है 21 बिट / चरित्र अधिकतम। वर्तमान यूनिकोड 8.0 कुल में 120,737 वर्णों को निर्दिष्ट करता है, और ये सभी)।

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

प्रत्येक चरित्र में 0 से 1,114,111 (हेक्स: 0-10 एफएफएफएफ) को कोड बिंदु कहा जाता है
एक एन्कोडिंग फॉर्म एक कोड इकाई अनुक्रम में एक कोड बिंदु को मैप करता है। एक कोड इकाई है जिस तरह से आप वर्णों को स्मृति, 8-बिट इकाइयों, 16-बिट इकाइयों में व्यवस्थित करने के लिए चाहते हैं। यूटीएफ -8 8 बिट्स के 1 से 4 इकाइयों का उपयोग करता है, और यूटीएफ -16, 16 बिट्स के 1 या 2 इकाइयों का उपयोग करता है, ताकि पूरे 21 यूनिट के यूनिकोड को अधिकतम हो सके। इकाइयां उपसर्गों का उपयोग करती हैं ताकि वर्ण की सीमाएं देखा जा सकें, और अधिक इकाइयों का अर्थ है कि बिट्स पर कब्जा करने वाले और अधिक उपसर्ग हैं। इसलिए, यद्यपि यूटीएफ -8 लैटिन स्क्रिप्ट के लिए 1 बाइट का उपयोग करता है, उसे बेसिक बहुभाषी विमान के अंदर के बाद के स्क्रिप्ट के लिए 3 बाइट्स की आवश्यकता होती है, जबकि यूटीएफ -16 इन सभी के लिए 2 बाइट का उपयोग करता है। और यही उनका मुख्य अंतर है
अन्त में, एक एन्कोडिंग स्कीम (जैसे कि यूटीएफ -16 बीई या यूटीएफ -16LE) मानचित्र (सीरियलइज़) एक बाइट क्रम के लिए एक कोड इकाई अनुक्रम।

चरित्र: π
कोड बिंदु: U + 03C0
एन्कोडिंग फॉर्म (कोड इकाइयां):
यूटीएफ -8: सीएफ 80
UTF-16: 03C0
एन्कोडिंग योजनाएं (बाइट्स):
यूटीएफ -8: सीएफ 80
यूटीएफ -16 बीई: 03 सी 0
यूटीएफ -16LE: सी 0 03

युक्ति: एक हेक्स अंक 4 बिट्स का प्रतिनिधित्व करता है, इसलिए दो अंकों के हेक्स नंबर एक बाइट का प्रतिनिधित्व करता है
चरित्र सेट लेआउट की भावना पाने के लिए विकिपीडिया में प्लेन मानचित्र पर एक नज़र डालें

मूलतः, यूनिकोड का एक निश्चित चौड़ाई 16-बिट एन्कोडिंग (यूसीएस -2) था। यूनिकोड के प्रारंभिक अपनाने वाले, जैसे जावा और विंडोज एनटी, ने अपने पुस्तकालयों को 16-बिट तारों के आसपास बनाया।

बाद में, यूनिकोड का दायरा ऐतिहासिक वर्णों को शामिल करने के लिए बढ़ाया गया था, जिसके लिए 65,536 कोड अंक की आवश्यकता होती है, जो कि 16-बिट एन्कोडिंग का समर्थन करेंगे। UCS-2 का उपयोग करने वाले प्लेटफार्मों पर अतिरिक्त वर्णों का प्रतिनिधित्व करने के लिए, यूटीएफ -16 एन्कोडिंग पेश किया गया था। पूरक विमानों में वर्णों का प्रतिनिधित्व करने के लिए यह "किराए की जोड़ी" का उपयोग करता है

इस बीच, बहुत पुराने सॉफ़्टवेयर और नेटवर्क प्रोटोकॉल 8-बिट स्ट्रिंग्स का उपयोग कर रहे थे। यूटीएफ -8 बनाया गया था ताकि ये सिस्टम यूनिकोड को व्यापक वर्णों का उपयोग किए बिना समर्थन कर सके। यह 7-बिट ASCII के साथ पीछे-संगत है

क्यों यूनिकोड? क्योंकि ASCII में सिर्फ 127 वर्ण हैं 128 से 255 के लोग अलग-अलग देशों में भिन्न होते हैं, यही कारण है कि कोडपेपेज हैं। इसलिए उन्होंने कहा है कि 1114111 वर्णों की आवश्यकता है तो आप उच्चतम कोडपे कैसे संग्रहीत करते हैं? आपको 21 बिट्स का उपयोग करके इसे स्टोर करने की आवश्यकता होगी, ताकि आप ड्वाड का उपयोग करते हुए 32 बिट्स को व्यर्थ किए गए 11 बिट्स के साथ उपयोग कर सकें। इसलिए यदि आप यूनिकोड वर्ण को संग्रहीत करने के लिए एक DWORD का उपयोग करते हैं, तो यह सबसे आसान तरीका है क्योंकि आपके DWORD का मान बिल्कुल कोडपॉइंट से मेल खाता है। लेकिन DWORD सरणियों को वर्ड एरे से बड़ा और निश्चित रूप से BYTE arrays से भी बड़ा है। यही कारण है कि केवल यूटीएफ -32 ही नहीं, बल्कि यूटीएफ -16 भी है लेकिन यूटीएफ -16 का अर्थ है एक WORD स्ट्रीम, और एक WORD में 16 बिट हैं, ताकि वर्ड में सर्वोच्च कोडपॉइंट 1114111 फिट कैसे हो सके? यह नहीं कर सकते! इसलिए उन्होंने 65535 से अधिक प्रत्येक डीवॉर्ड में डाल दिया, जिसमें वे एक सरोगेट-जोड़ी कहते हैं। ऐसे सरोगेट-जोड़ी दो शब्द हैं और पहले 6 बिट को देखकर पता लगा सकते हैं। तो utf-8 के बारे में क्या? यह एक बाइट सरणी या बाइट स्ट्रीम है, लेकिन उच्चतम कोडपेप 1114111 एक बाइट में कैसे फ़िट हो सकता है? यह नहीं कर सकते! ठीक है, तो वे भी एक DWORD सही में डाल दिया? या संभवतः एक शब्द, सही? लगभग सही! उन्होंने utf-8 अनुक्रमों का आविष्कार किया, जिसका अर्थ है कि 127 से अधिक प्रत्येक कोड पॉइंट को 2-बाइट, 3-बाइट या 4-बाइट अनुक्रम में एन्कोड करना होगा। वाह! लेकिन हम इस तरह के दृश्यों को कैसे पहचान सकते हैं? ठीक है, 127 तक की सभी चीजें एएससीआईआई हैं और एक एकल बाइट है। जो 110 से शुरू होता है वह दो-बाइट अनुक्रम होता है, 1110 से शुरू होने वाला एक तीन-बाइट अनुक्रम होता है और 11110 से शुरू होने वाला एक चार-बाइट अनुक्रम होता है इन तथाकथित "आरंभबाइट" के शेष बिट्स कोडपॉइंट से संबंधित हैं। अब अनुक्रम के आधार पर, निम्न बाइट्स का पालन करना चाहिए। निम्नलिखित बाइट 10 से शुरू होता है, शेष बिट्स पेलोड बिट्स के 6 बिट्स होते हैं और कोडपॉइंट से संबंधित होते हैं। स्टार्टबाइट और निम्नलिखित बाइट्स के पेलोड बिट्स को संमिलित करें और आपके पास कोडपॉइंट होगा। यूटीएफ -8 का यह सब जादू है

यह आलेख http://kunststube.net/encoding/ सभी विवरण बताता है

बफर को लिखना

अगर आप 4 बाइट बफर को लिखते हैं, तो यूटीएफ 8 एन्कोडिंग के साथ पत्र,, आपका बाइनरी इस तरह दिखेगा:

00000000 11100011 10000001 10000010

यदि आप 4 बाइट बफर को लिखते हैं, तो यूटीएफ 16 एन्कोडिंग के साथ पत्र,, आपका बाइनरी इस तरह दिखेगा:

00000000 00000000 00110000 01000010

जैसा कि आप देख सकते हैं, आप अपनी सामग्री में किस भाषा का प्रयोग करेंगे इसके आधार पर यह आपकी स्मृति को तदनुसार प्रभावित करेगा।

उदाहरण के लिए: इस विशेष पत्र के लिए: UTF16 अधिक कुशल है क्योंकि हमारे पास अगला प्रतीक के लिए उपयोग करने के लिए 2 अतिरिक्त बाइट हैं। लेकिन इसका मतलब यह नहीं है कि आपको जापान वर्णमाला के लिए UTF16 का उपयोग करना चाहिए।

बफ़र से पढ़ना

अब यदि आप उपरोक्त बाइट्स पढ़ना चाहते हैं, तो आपको यह पता होना चाहिए कि किस एन्कोडिंग को लिखा गया था और इसे वापस सही तरीके से एन्कोड किया गया था।

उदाहरण यदि आप इसे सांकेतिक शब्दों में बदलना: 00000000 11100011 10000001 10000010 UTF16 में आप नहीं के साथ समाप्त होगा

यहां छवि विवरण दर्ज करें

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

यूटीएफ -8 और यूटीएफ -16 दो ऐसे एनकोडिंग हैं। वे कोड बिंदुओं को इनपुट के रूप में लेते हैं और एन्कोडेड स्ट्रिंग का निर्माण करने के लिए उन्हें कुछ अच्छी तरह से परिभाषित सूत्र का उपयोग करते हैं।

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

यूनिकोड, यूटीएफ -8 और यूटीएफ -16 के बारे में अधिक गहन जानकारी के लिए, आप इस आलेख को चेक कर सकते हैं,

यूनिकोड के बारे में हर प्रोग्रामर को क्या पता होना चाहिए

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

यूटीएफ -8 में चरित्र एन्कोडिंग क्षमताओं हैं और इसकी कोड इकाई 8 बिट है जबकि यूटीएफ -16 के लिए यह 16 बिट है।

एक आईडीएन (अंतर्राष्ट्रीय डोमेन नाम) डोमेन और यूनिकोडा (यूटीएफ -8) डोमेन को प्रारूपित करने के लिए उपयोग करें। डोमेन आईडीएन कन्वर्ट टूल आपको एएससीआईआई डोमेन के लिए यूनीकोड ​​और यूनिकोड डोमेन में एएससीआईआई डोमेन कन्वर्ट करने में मदद करता है।

यहां युनिकोड की कोशिश करें: यूनिकोड कनवर्ट टूल