2014-12-06 5 views
41

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

देखकर कैसे इन शर्तों मथायस Bynens 'JavaScript has a unicode problem या विकिपीडिया के Han unification पर टुकड़ा जैसे दस्तावेज़ों में आदत हो, मैं इकट्ठा कर लिया है कि इन अवधारणाओं को एक ही बात नहीं कर रहे हैं और यह उन्हें conflate करने के लिए खतरनाक है कि है, लेकिन मैं एक तरह से संघर्ष कर रहा हूँ यह समझने के लिए कि प्रत्येक शब्द का अर्थ है।

यूनिकोड कंसोर्टियम एक glossary इस सामग्री की व्याख्या करने के प्रदान करता है, लेकिन यह इस तरह "परिभाषा" से भरा हुआ है:

सार चरित्र। टेक्स्ट डेटा के संगठन, नियंत्रण या प्रतिनिधित्व के लिए उपयोग की जाने वाली जानकारी की एक इकाई। ...

...

चरित्र। ... (2) अमूर्त चरित्र के लिए समानार्थी। (3) यूनिकोड चरित्र एन्कोडिंग के लिए एन्कोडिंग की मूल इकाई। ...

...

ग्लिफ़। (1) एक अमूर्त रूप जो एक या अधिक ग्लिफ छवियों का प्रतिनिधित्व करता है। (2) ग्लिफ छवि के लिए एक पर्याय। यूनिकोड चरित्र डेटा प्रदर्शित करने में, एक विशेष चरित्र को चित्रित करने के लिए एक या अधिक ग्लाइफ का चयन किया जा सकता है।

...

ग्राफ़ीम। (1) एक विशेष लेखन प्रणाली के संदर्भ में लेखन की एक न्यूनतम विशिष्ट इकाई। ...

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

तो मैं उन लोगों के आर्केन ज्ञान की तलाश करता हूं जो इनसे अधिक सीखा है। इन अवधारणाओं में से प्रत्येक एक दूसरे से अलग कैसे है, और किस परिस्थिति में उनके साथ एक-दूसरे के साथ संबंध नहीं होगा?

उत्तर

66
  • चरित्र एक ओवरलोड अवधि में बहुत सी बातें मतलब हो सकता है की तुलना में है।

  • कोड बिंदु जानकारी की परमाणु इकाई है। टेक्स्ट कोड पॉइंट का एक अनुक्रम है। प्रत्येक कोड बिंदु एक संख्या है जिसे यूनिकोड मानक द्वारा दिया जाता है।

  • एक कोड इकाई एक एन्कोड कोड बिंदु के एक हिस्सा के भंडारण की इकाई है। यूटीएफ -8 में इसका मतलब है 8-बिट्स, यूटीएफ -16 में इसका मतलब है 16-बिट्स। एक कोड कोड एक पूर्ण कोड बिंदु, या कोड बिंदु का हिस्सा प्रतिनिधित्व कर सकता है। उदाहरण के लिए, स्नोमैन ग्लाइफ () एक एकल कोड बिंदु है लेकिन 3 यूटीएफ -8 कोड इकाइयां, और 1 यूटीएफ -16 कोड इकाई है।

  • एक ग्रफीम एक या अधिक कोड अंक एक एकल, चित्रमय इकाई है कि एक पाठक लेखन प्रणाली के एक भी तत्व के रूप में मान्यता देते हैं के रूप में प्रदर्शित कर रहे हैं कि का एक क्रम है। उदाहरण के लिए, a और ä दोनों ग्राफ़ेम्स हैं, लेकिन उनमें एकाधिक कोड बिंदु हो सकते हैं (उदाहरण के लिए ä दो कोड बिंदु हो सकते हैं, आधार चरित्र a के लिए एक के बाद डायरेरेसिस के लिए एक, लेकिन एक वैकल्पिक, विरासत, एकल कोड भी है इस grapheme का प्रतिनिधित्व बिंदु)। कुछ कोड बिंदु कभी भी किसी भी ग्रैफेम का हिस्सा नहीं होते हैं (उदा। शून्य-चौड़ाई गैर-योजक, या दिशात्मक ओवरराइड)।

  • एक ग्लिफ़ एक छवि है, आम तौर पर एक फ़ॉन्ट (जो ग्लिफ़ का एक संग्रह है) में जमा हो जाती, तो तत्संबंधी graphemes या भागों का प्रतिनिधित्व करते थे है। फ़ॉन्ट्स एक से अधिक प्रतिनिधित्व में एकाधिक ग्लिफ बना सकते हैं, उदाहरण के लिए, यदि उपरोक्त ä एक एकल कोड बिंदु है, तो फ़ॉन्ट को दो अलग-अलग, स्थानिक रूप से ओवरलैड ग्लिफ के रूप में प्रस्तुत करने के लिए चुना जा सकता है। ओटीएफ के लिए, फ़ॉन्ट के जीयूबी और जीपीओएस टेबल में यह काम करने के लिए प्रतिस्थापन और स्थिति जानकारी शामिल है। एक फ़ॉन्ट में एक ही ग्रैफेम के लिए कई वैकल्पिक ग्लिफ भी हो सकते हैं।

+0

अच्छा होगा अगर इस उत्तर में कोड-इकाइयां शामिल हों। –

+0

@MicahZoltu: मेह, मुझे यकीन नहीं है। अब आपने वहां शब्दों का एक टन फेंक दिया है जो परिभाषित नहीं हैं, और उदाहरण में व्याख्यात्मक विस्तार की कमी है और शब्द "चरित्र" का दुरुपयोग करता है ... –

+0

"चरित्र" के अस्पष्ट उपयोग के लिए खेद है। मैं "चरित्र" का उपयोग न करने का एक बड़ा वकील हूं, फिर भी यह एक जाल है जिसे मैं नियमित रूप से गिरता हूं। :/शर्तों के लिए, मुझे यकीन नहीं है कि आप किसका जिक्र कर रहे हैं? कोड यूनिट इस स्थान पर एक अच्छी तरह से परिभाषित शब्द है, मेरा मानना ​​है कि, https://en.wikipedia.org/wiki/Character_encoding#Terminology प्रारंभिक बिंदु के रूप में देखें। शायद आप किसी अन्य शब्द का जिक्र कर रहे हैं जिसका इस्तेमाल मैंने किया था? –

संबंधित मुद्दे