हिंदी लिखते समय क्या आपके साथ ऐसा हुआ है कि आपने एमएस वर्ड या गूगल डॉक्स में बिल्कुल सही शब्द लिखा — जैसे "लड़का" या "फ़ैसला" — लेकिन सॉफ़्टवेयर ने उसके नीचे लाल लहरदार रेखा (Red Squiggly Line) खींचकर उसे अशुद्ध घोषित कर दिया? या फिर आपने किसी पीडीएफ़ या वेबसाइट में "पेड़" शब्द सर्च किया और सर्च इंजन ने कहा: "कोई परिणाम नहीं मिला", जबकि वह शब्द आपकी आँखों के सामने स्क्रीन पर मौजूद था?
यह कोई भूतिया घटना नहीं है, बल्कि कंप्यूटर विज्ञान की एक बहुत ही दिलचस्प समस्या है जिसे "नुक्ता (Nukta) और यूनिकोड नॉर्मलाइजेशन" कहा जाता है।
1. पर्दे के पीछे: एक ही अक्षर, दो अलग-अलग पहचान पत्र!
हिंदी में 'ड़', 'ढ़', 'फ़', 'ज़', 'ख़' जैसे अक्षरों के नीचे एक छोटी बिंदी लगाई जाती है, जिसे व्याकरण में "नुक्ता" (Nukta) कहते हैं।
कंप्यूटर की भाषा यानी यूनिकोड (Unicode) में इन अक्षरों को लिखने के दो अलग-अलग कानूनी रास्ते मौजूद हैं:
- रास्ता 1: संयुक्त रूप (NFC - Precomposed): इसमें कंप्यूटर के पास 'ड़' के लिए एक अकेला, स्वतंत्र कोड है:
U+095C। कंप्यूटर इसे एक ही अक्षर मानता है। - रास्ता 2: दो टुकड़ों वाला रूप (NFD - Decomposed): इसमें कंप्यूटर पहले सादा 'ड' (
U+0921) लेता है और फिर उसके नीचे नुक्ते का चिह्न (U+093C) चिपका देता है। कंप्यूटर इसे दो अलग-अलग कैरेक्टर मानता है।
U+095C और U+0921 + U+093C दो बिल्कुल अलग ग्रह हैं!
2. स्पेलचेक और सर्च इंजन क्यों गच्चा खा जाते हैं?
जब आप किसी वेबसाइट या वर्ड प्रोसेसर में टाइप करते हैं, तो यह समस्या तीन स्तरों पर तबाही मचाती है:
- डिक्शनरी में बेमेल (Dictionary Lookup Mismatch): मान लीजिए कि एमएस वर्ड की हिंदी डिक्शनरी में "लड़का" शब्द पहले तरीके (NFC) से सेव है। लेकिन आपके मोबाइल या कंप्यूटर के कीबोर्ड ने उसे दूसरे तरीके (ड + नुक्ता) से टाइप किया। जब स्पेलचेकर दोनों की तुलना करता है, तो उसे लगता है कि यह शब्द डिक्शनरी में है ही नहीं, और वह तुरंत लाल लाइन खींच देता है!
- सर्च में शब्द न मिलना (Search Inability): आपने बैंक या सरकारी पोर्टल पर अपने नाम में "अंसारी" या "फ़ारूक़ी" खोजा। अगर डेटाबेस में नुक्ता अलग तरीके से दर्ज है और आपने सर्च बॉक्स में दूसरे तरीके से टाइप किया, तो पोर्टल कहेगा: "रिकॉर्ड नॉट फाउंड"।
- नुक्ता छोड़ देने की मानवीय आदत: बहुत से लोग आलस में नुक्ता लगाते ही नहीं (जैसे 'पेड़' की जगह 'पेड' या 'सड़क' की जगह 'सडक' लिख देते हैं)। सर्च इंजन को समझ ही नहीं आता कि दोनों एक ही चीज़ हैं।
3. समाधान: सॉफ़्टवेयर डेवलपर्स और उपयोगकर्ताओं को क्या करना चाहिए?
इस समस्या का समाधान केवल एक ही है — यूनिकोड नॉर्मलाइजेशन (Unicode Normalization):
- डेवलपर्स के लिए: जब भी कोई उपयोगकर्ता अपनी वेबसाइट या फॉर्म में हिंदी दर्ज करे, तो डेटाबेस में सेव करने या सर्च करने से पहले उस text को
unicodedata.normalize('NFC', text)से गुज़ारें। यह सभी टूटे हुए नुक्तों को एक मानक रूप में बाँध देता है। - उपयोगकर्ताओं के लिए: हमेशा भारत सरकार द्वारा स्वीकृत मानक विंडोज़ 11/10 इनस्क्रिप्ट या फ़ोनेटिक कीबोर्ड का इस्तेमाल करें जो आधुनिक NFC मानकों का पालन करते हैं।
- वर्ड प्रोसेसर टूल्स: आप हमारे ऑनलाइन हिंदी वर्ड प्रोसेसर का उपयोग कर सकते हैं, जिसमें स्वतः इनबिल्ट नॉर्मलाइजेशन लगा हुआ है।
अगली बार जब कोई स्पेलचेकर आपके सही नुक्ते वाले शब्द को लाल लाइन दिखाए, तो समझ जाइए कि आपकी हिंदी गलत नहीं है, बल्कि कंप्यूटर का नॉर्मलाइजेशन इंजन थोड़ा सुस्त है!