देवनागरी में हर स्वर-चिह्न (मात्रा) एक व्यंजन से जुड़ा होता है — जैसे "कि" में इ की मात्रा व्यंजन "क" से पहले दिखती भले हो, टेक्स्ट में स्टोर होने पर व्यंजन के बाद आती है। सिर्फ़ कोड पॉइंट के आधार पर टेक्स्ट को उल्टा करने पर यह जुड़ाव टूट जाता है और मात्रा किसी दूसरे व्यंजन से चिपक जाती है, जिससे नतीजा पढ़ने लायक नहीं रह जाता।
ग्रैफ़ीम क्लस्टर क्या है
जिसे इंसान "एक दिखने वाला कैरेक्टर" मानते हैं, वह यूनिकोड में कभी-कभी कई कोड पॉइंट से बना होता है — देवनागरी में "क्ष" जैसा संयुक्ताक्षर (conjunct) कई व्यंजनों और मात्राओं के मेल से बनता है, ठीक वैसे ही जैसे फ़ैमिली इमोजी (👨👩👧) असल में कई अलग इमोजी हैं जो एक ख़ास ज़ीरो-विड्थ जॉइनर से जुड़े हैं। ऐसे कॉम्बिनेशन को ग्रैफ़ीम क्लस्टर कहा जाता है।
नैव रिवर्सल सब कुछ क्यों तोड़ देता है
अगर देवनागरी टेक्स्ट को ग्रैफ़ीम क्लस्टर के बजाय अलग-अलग कोड पॉइंट के आधार पर रिवर्स किया जाए, तो हर मात्रा और हलंत ग़लत व्यंजन से जुड़ जाते हैं — नतीजा न सिर्फ़ उल्टा, बल्कि पूरी तरह अर्थहीन और अपठनीय अक्षरों का मिश्रण बन जाता है।
सही रिवर्सल
सही इम्प्लीमेंटेशन पहले स्ट्रिंग को ग्रैफ़ीम क्लस्टर में तोड़ता है (व्यंजन, मात्रा, हलंत और जॉइनर का हिसाब रखते हुए), और फिर इन क्लस्टर का क्रम उलटता है, अंदर के अलग-अलग कोड पॉइंट का नहीं — इससे हर अक्षर अपने सही स्वर-चिह्न के साथ जुड़ा रहता है।
यह किस काम आता है
- पैलिंड्रोम चेक करना या "मिरर" टेक्स्ट इफ़ेक्ट बनाना।
- कोड में यूनिकोड हैंडलिंग बग को डेमो या डायग्नोज़ करना।
- इमोजी या भारतीय लिपियों के साथ सही टेक्स्ट रिवर्सल की ज़रूरत वाले शैक्षिक काम।
संयुक्ताक्षर (conjunct consonants) की चुनौती
"क्ष", "त्र", "ज्ञ" जैसे संयुक्ताक्षर कई व्यंजनों को हलंत से जोड़कर एक विज़ुअल यूनिट बनाते हैं, हालाँकि यूनिकोड में ये अब भी कई अलग-अलग कोड पॉइंट होते हैं। सही ग्रैफ़ीम-क्लस्टर-अवेयर रिवर्सल इन पूरे संयुक्ताक्षर को एक साथ एक इकाई के रूप में उलटता है, ताकि हर संयुक्त अक्षर उल्टे टेक्स्ट में भी सही और पठनीय बना रहे।