यूनिकोड मानक के बाहर एक चरित्र एक या एक से अधिक अंगूरों से बना पाठ की एक व्यक्तिगत इकाई है । यूनिकोड मानक "वर्ण" के रूप में परिभाषित करता है जो वास्तव में अंगूर और पात्रों का मिश्रण है। यूनिकोड अलग-अलग पात्रों के रूप में रसगुल्ले अंगूर की व्याख्या के लिए नियम प्रदान करता है।
एक यूनिकोड कोड बिंदु एक अद्वितीय को दिए गये नंबर यूनिकोड वर्ण (जो या तो एक चरित्र या एक ग्रफीम है)।
दुर्भाग्य से, यूनिकोड के नियमों में कुछ रस वाले अंगूरों को अन्य अंगूरों के रूप में व्याख्या करने की अनुमति है, जिनके पास पहले से ही अपने स्वयं के कोड बिंदु ( पूर्व-निर्मित रूप ) हैं। इसका मतलब यह है कि एक चरित्र का प्रतिनिधित्व करने के लिए यूनिकोड में एक से अधिक तरीके हैं। यूनिकोड सामान्यीकरण इस मुद्दे को संबोधित करता है।
एक ग्लिफ़ एक चरित्र का दृश्य प्रतिनिधित्व है। एक फ़ॉन्ट वर्णों के एक निश्चित समूह के लिए ग्लिफ़ का एक सेट प्रदान करता है (यूनिकोड वर्ण नहीं)। हर चरित्र के लिए, संभावित ग्लिफ़ की एक अनंत संख्या है।
मार्क अमेरी को एक उत्तर दें
सबसे पहले, जैसा कि मैंने कहा, प्रत्येक चरित्र के लिए संभावित ग्लिफ़ की एक अनंत संख्या है इसलिए नहीं, एक चरित्र "हमेशा एक ग्लिफ़ द्वारा दर्शाया गया" नहीं है। यूनिकोड अपने आप को ग्लिफ़ से बहुत अधिक चिंतित नहीं करता है, और इसके कोड चार्ट में इसे परिभाषित करने वाली चीजें निश्चित रूप से ग्लिफ़ नहीं हैं। समस्या यह है कि न तो वे सभी पात्र हैं। तो वे क्या हैं?
अधिक से अधिक इकाई, अंगूर या चरित्र कौन सा है? पाठ में उन ग्राफिक तत्वों को क्या कहते हैं जो अक्षर या विराम चिह्न नहीं हैं? एक शब्द जो जल्दी से दिमाग में आता है, वह है "अंगूर"। यह एक ऐसा शब्द है जो "एक पाठ में एक चित्रमय इकाई" के विचार को ठीक से जोड़ देता है। मैं इस परिभाषा को प्रस्तुत करता हूं: एक लिखित पाठ में एक छोटा सा अलग घटक है ।
कोई दूसरे तरीके से जा सकता है और कह सकता है कि अंगूर वर्णों से बने होते हैं, लेकिन फिर उन्हें "चीनी अंगूर" कहा जाएगा, और उन सभी बिट्स और टुकड़ों को चीनी अंगूर कहा जाता है जिन्हें इसके बजाय "वर्ण" कहा जाना होगा। हालाँकि, यह सब पीछे की ओर है। Graphemes विशिष्ट छोटे बिट्स और टुकड़े हैं। वर्ण अधिक विकसित होते हैं। "ग्लिफ़्स कंपोज़ेबल हैं" वाक्यांश, यूनिकोड के संदर्भ में बेहतर होगा क्योंकि "वर्ण कंपोज़ेबल हैं"।
यूनिकोड वर्णों को परिभाषित करता है लेकिन यह उन अंगूरों को भी परिभाषित करता है जिन्हें अन्य अंगूरों या पात्रों के साथ बनाया जाना है। आपके द्वारा रचित वे एकांत इसके उदाहरण हैं। यदि वे शायद पकड़ लेते हैं तो उन्हें यूनिकोड के बाद के संस्करण में अपने कोड पॉइंट मिलेंगे;)
इस सब के लिए एक पुनरावर्ती तत्व है। उच्च स्तर पर, अंगूर वर्ण बन जाते हैं, अंगूर बन जाते हैं, लेकिन यह नीचे सभी तरह से अंगूर होते हैं।
टीएस को जवाब दें
मानक राज्यों का अध्याय 1 : "यूनिकोड चरित्र एन्कोडिंग वर्णनात्मक वर्णों, वैचारिक चरित्रों और प्रतीकों को समान रूप से व्यवहार करता है, जिसका अर्थ है कि उनका उपयोग किसी भी मिश्रण में और समान सुविधा के साथ किया जा सकता है"। इस कथन को देखते हुए, हमें मानक में कुछ शर्तों के लिए तैयार रहना चाहिए। कभी-कभी उचित शब्दावली केवल मानक विकास के रूप में पूर्वव्यापी में स्पष्ट हो जाती है।
यह अक्सर एक भाषा की औपचारिक परिभाषाओं में होता है कि दो मौलिक चीजें एक-दूसरे के संदर्भ में परिभाषित होती हैं। उदाहरण के लिए,
एक्सएमएल में एक तत्व को एक शुरुआती टैग के रूप में परिभाषित किया जाता है जो संभवतः सामग्री के बाद होता है, उसके बाद एक समाप्त टैग होता है। सामग्री को बदले में एक तत्व, चरित्र डेटा या कुछ अन्य संभावित चीजों के रूप में परिभाषित किया गया है। स्व-संदर्भात्मक परिभाषाओं का एक पैटर्न यूनिकोड मानक में भी निहित है:
एक अंगूर एक कोड बिंदु या एक चरित्र है।
एक चरित्र एक या एक से अधिक अंगूरों के अनुक्रम से बना है।
पहले इन दोनों परिभाषाओं के साथ सामना किया जब पाठक इस आधार पर कि एक कोड बिंदु पर पहले परिभाषा पर आपत्ति हो सकती है है एक चरित्र है, लेकिन यह हमेशा सच नहीं है। दो कोड बिंदुओं का एक अनुक्रम कभी-कभी सामान्यीकरण के तहत एकल कोड बिंदु को एन्कोड करता है
, और एन्कोडेड कोड बिंदु चरित्र का प्रतिनिधित्व करता है, जैसा कि आंकड़ा 2.7 में सचित्र है
। कोड बिंदुओं के अनुक्रम जो अन्य कोड बिंदुओं को कूटबद्ध करते हैं। यह थोड़ा मुश्किल हो रहा है और हम उस लेयर तक भी नहीं पहुंचे हैं जहां यूटीएफ -8 जैसी कैरेक्टर एन्कोडिंग स्कीमों का इस्तेमाल कोड पॉइंट्स को बाइट सीक्वेंस में एनकोड करने के लिए किया जाता है।
कुछ संदर्भों में, उदाहरण के लिए , धृतिशास्त्र पर एक विद्वतापूर्ण लेख
, और एक चरित्र का अलग-अलग हिस्सा पाठ में अपने आप को दिखा सकता है। उस संदर्भ में, व्यक्तिगत चरित्र भाग को एक चरित्र माना जा सकता है, इसलिए यह समझ में आता है कि यूनिकोड मानक भी लचीला बना हुआ है।
जैसा कि मार्क एवेरी ने बताया, एक चरित्र को एक अधिक जटिल चीज़ में बनाया जा सकता है। यही है, प्रत्येक चरित्र वांछित होने पर एक अंगूर के रूप में सेवा कर सकता है। सभी रचना का अंतिम परिणाम एक ऐसी चीज है जो "उपयोगकर्ता एक चरित्र के रूप में सोचता है"। ऐसा लगता नहीं है कि कोई वास्तविक प्रतिरोध है, या तो मानक या इस चर्चा में, इस विचार के लिए कि उच्चतम स्तर पर पाठ में ये चीजें हैं जो उपयोगकर्ता व्यक्तिगत पात्रों के रूप में सोचता है। उस शब्द को ओवरलोड करने से बचने के लिए, हम उन सभी मामलों में "ग्रैपहेम" का उपयोग कर सकते हैं, जहां हम एक चरित्र की रचना करने के लिए इस्तेमाल किए गए भागों को संदर्भित करना चाहते हैं।
कभी-कभी यूनिकोड मानक अपनी शब्दावली के साथ सभी जगह होता है। उदाहरण के लिए, अध्याय 3
UTF-8 को "एन्कोडिंग फ़ॉर्म" के रूप में परिभाषित करता है जबकि शब्दकोष "एन्कोडिंग फ़ॉर्म" को कुछ और के रूप में परिभाषित करता है, और UTF-8 को "चरित्र एन्कोडिंग योजना" के रूप में परिभाषित करता है। एक अन्य उदाहरण "Grapheme_Base" और "Grapheme_Extend" हैं, जिन्हें गलतियों के लिए स्वीकार किया जाता है, लेकिन यह जारी रहता है क्योंकि उन्हें शुद्ध करना एक कार्य का एक सा है। मानक द्वारा नियोजित शब्दावली को कसने के लिए अभी भी काम किया जाना है।
COMBINING GRAPHEME JOINER को शामिल करने का प्रस्ताव तब गलत हो गया जब उसने कहा कि "ग्रेफेम एक या एक से अधिक एन्कोडेड वर्णों के अनुक्रम हैं जो उपयोगकर्ताओं के चरित्रों के बारे में सोचते हैं।" इसके बजाय इसे पढ़ना चाहिए, "एक या एक से अधिक अंगूरों का एक क्रम यह बताता है कि उपयोगकर्ता एक चरित्र के रूप में क्या सोचता है।" तब यह "वर्ण अनुक्रम" शब्द से अलग "वर्ण अनुक्रम" शब्द का उपयोग कर सकता था। दोनों शब्द उपयोगी हैं। "ग्रेपमे सीक्वेंस" बड़े करीने से छोटे टुकड़ों से एक चरित्र के निर्माण की प्रक्रिया को दर्शाता है। "चरित्र अनुक्रम" का अर्थ है कि हम सभी आम तौर पर इसका मतलब निकालते हैं: "उन चीजों का एक क्रम जो उपयोगकर्ता पात्रों के रूप में सोचते हैं।"
कभी-कभी एक प्रोग्रामर वास्तव में ग्रैपहेम अनुक्रमों के स्तर पर काम करना चाहता है, इसलिए उन अनुक्रमों का निरीक्षण और हेरफेर करने के लिए तंत्र उपलब्ध होना चाहिए, लेकिन आम तौर पर, जब टेक्स्ट को संसाधित किया जाता है, तो यह "चरित्र दृश्यों" पर काम करने के लिए पर्याप्त है (उपयोगकर्ता क्या सोचता है एक चरित्र के रूप में) और सिस्टम को निचले-स्तर के विवरण का प्रबंधन करने दें।
इस चर्चा में अब तक कवर किए गए हर मामले में, यह "ग्रैफेम" का उपयोग करने के लिए क्लीनर है, जो कि अविभाज्य घटकों को संदर्भित करने के लिए और "एंटिटी" से बना है। यह उपयोग दोनों शब्दों के लंबे समय से स्थापित अर्थों को भी बेहतर ढंग से दर्शाता है।