UTF-8 है कि यह सार पूर्णांकों का एक अनुक्रम को कूटबद्ध अर्थ में, एक एन्कोडिंग है। (यूनिकोड चश्मे के माध्यम से, आप कह सकते हैं कि ISO-8859-1 जैसे 'चरित्र सेट' भी एक टेबल-संचालित 'एन्कोडिंग' है, इस अर्थ में कि यह कोडों की एक छोटी संख्या को बाइट्स के रूप में एन्कोड करता है, लेकिन यह शब्दावली के दुरुपयोग की ओर अग्रसर है , और शायद बहुत उपयोगी नहीं है)।
पूर्णांक का अनुक्रम (कुछ मौलिक अर्थ में) 'यूनिकोड स्ट्रिंग' है, लेकिन इन्हें डिस्क पर सहेजने या उन्हें नेटवर्क पर भेजने के लिए, आपको उन्हें बाइट्स के अनुक्रम के रूप में एन्कोड करने की आवश्यकता है। यूटीएफ -8 ऐसा करने का एक तरीका है, यूटीएफ -16 एक और है: एक यूनिकोड स्ट्रिंग को बाइट्स की दो अलग-अलग धाराओं के रूप में दर्शाया जाएगा यदि यह दो अलग-अलग तरीकों से एन्कोड किया गया है।
एक से अधिक ठीक जवाब यहाँ हैं, लेकिन सिर्फ कल मैं कुछ न्यूनतम आकार के लिए नीचे इस मुद्दे उबाल करने की कोशिश कर कुछ समय बिताया है, तो यह है कि पाठ का पुन: उपयोग करने के लिए एक खुश अवसर प्रदान करता है:
योएल Spolsky के लेख The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) पर काफी अच्छा है, मुझे लगता है। यह पहले (निश्चित रूप से) पहले उल्लेख किया गया है, लेकिन यह दोहराना भालू है। मुझे लगता है कि यह पूरी तरह से न्यूनतम नहीं है, हालांकि।
कुछ अवसरों पर जब मुझे एक सहयोगी को 'यूनिकोड' समझाया गया था, तो यह अमूर्त यूनिकोड कोडपॉइंट्स की धारणा है जो रोशनी के लिए महत्वपूर्ण है। (ज्यादा agonizing और बातचीत के साथ)
यूनिकोड कंसोर्टियम है उपयोग में पात्रों के एक बड़े अंश के लिए एक नंबर देने में कामयाब रहे: मेरे सफल स्पष्टीकरण की संरचना कुछ इस तरह किया गया है। ये संख्याएं हैं (शब्दकोष) जिन्हें 'कोडपॉइंट्स' कहा जाता है।
'पत्र ए' में एक कोडपॉइंट है, और यह फोंट से स्वतंत्र है। इस प्रकार 'ए' और 'ए' के पास अलग-अलग कोडपॉइंट होते हैं, लेकिन रोमन, बोल्ड, इटैलिक, सेरिफ़, सैन्स सेरिफ़ (एट बहुत ज्यादा कैटेरा) विशिष्ट नहीं हैं। जापानी कांजी, तेंगवार और क्लिंगन पात्र (उदाहरण के लिए) कोडपॉइंट्स हैं (यह ध्यान देता है)।
ए 'यूनिकोड स्ट्रिंग' (अवधारणात्मक रूप से) कोडपॉइंट्स का अनुक्रम है। यह गणितीय पूर्णांक का अनुक्रम है। यह पूछने में कोई मतलब नहीं है कि ये बाइट्स, 2-बाइट या 4-बाइट शब्द हैं; अनुक्रम में कंप्यूटर के साथ कुछ लेना देना नहीं है।
यदि, हालांकि, आप किसी को पूर्णांक के अनुक्रम को भेजना चाहते हैं, या इसे कंप्यूटर डिस्क पर सहेजना चाहते हैं, तो आपको इसे एन्कोड करने के लिए कुछ करना होगा। आप पेपर के टुकड़े पर संख्याओं का अनुक्रम भी लिख सकते हैं, लेकिन इस बिंदु पर कंप्यूटर के लिए विशेषज्ञ बनें। यदि आप इसे कंप्यूटर पर स्टोर या भेजना चाहते हैं, तो आपको इन पूर्णांक को बाइट्स के अनुक्रम में बदलना होगा। ऐसा करने के लिए कई प्रक्रियाएं हैं, और इन प्रक्रियाओं में से प्रत्येक को 'एन्कोडिंग' नाम दिया गया है। इन 'एन्कोडिंग' में से एक यूटीएफ -8 है।
जब आप 'यूनिकोड फ़ाइल पढ़ते हैं', तो आप डिस्क पर बाइट्स के अनुक्रम के साथ शुरू कर रहे हैं, और संकल्पनात्मक रूप से पूर्णांक के अनुक्रम के साथ समाप्त हो रहे हैं। यदि 'यूनिकोड फ़ाइल' इंगित किया गया है, तो किसी भी तरह, यूटीएफ -8 में एन्कोड किया जाना है, तो आपको RFC 3629 में परिभाषित एल्गोरिदम का उपयोग करके पूर्णांक के अनुक्रम प्राप्त करने के लिए बाइट्स के अनुक्रम को डीकोड करना होगा। 'यूनिकोड स्ट्रिंग' पर आने वाले सभी कार्यों को कोडपॉइंट्स के अनुक्रम के संदर्भ में परिभाषित किया गया है, और यह तथ्य कि डिस्क पर, डिस्क पर, 'यूटीएफ -8' भूल गया है।
स्रोत
2013-03-05 16:16:46
माइनर नाइटपिक: यूनिकोड 21-बिट पूर्णांक का उपयोग करता है। –
@ आर। मार्टिन्होफर्नैंड्स, बिल्कुल सही। धन्यवाद। –
क्या यह नहीं था [वर्णमाला और एन्कोडिंग के बीच भेद] यूनिकोड से पहले भी लागू होता है? उदाहरण के लिए चरित्र सेट जेआईएस एक्स 0208 ईयूसी-जेपी और शिफ्ट-जेस – Esailija