यूनिकोड सामान्यीकरण क्या है?

यूनिकोड एक ही दृश्यमान वर्ण को प्रदर्शित करने के कई तरीके परिभाषित करता है। उदाहरण के लिए, वर्ण "é" को एक एकल प्रीकम्पोज़्ड कोड बिंदु (U+00E9) के रूप में या अक्षर "e" के बाद एक संयोजन तीव्र उच्चारण (U+0065 U+0301) के रूप में संग्रहीत किया जा सकता है। दोनों समान रूप से प्रदर्शित होते हैं लेकिन बाइट-दर-बाइट अलग होते हैं, जो string तुलना, खोज और पाठ प्रसंस्करण के लिए समस्याएं पैदा करता है।

यूनिकोड सामान्यीकरण पाठ को एक विहित प्रतिनिधित्व में परिवर्तित करने की प्रक्रिया है ताकि समकक्ष string समान बन जाएं। यूनिकोड मानक चार सामान्यीकरण रूपों को परिभाषित करता है:

  • NFC (विहित विघटन, उसके बाद विहित संरचना): प्रीकम्पोज़्ड रूप; सबसे कॉम्पैक्ट, वेब पर और अधिकांश ऑपरेटिंग सिस्टम में व्यापक रूप से उपयोग किया जाता है।
  • NFD (विहित विघटन): पूरी तरह से विघटित रूप; प्रत्येक वर्ण को आधार अक्षर और संयोजन चिह्नों में विभाजित किया जाता है।
  • NFKC (संगतता विघटन, उसके बाद विहित संरचना): NFC की तरह लेकिन संगतता वर्णों (जैसे, ligatures, सुपरस्क्रिप्ट, पूर्ण-चौड़ाई वेरिएंट) को उनके विहित समकक्षों में भी मोड़ता है।
  • NFKD (संगतता विघटन): NFD की तरह लेकिन संगतता विघटन भी लागू करता है।

उपकरण विवरण

यह उपकरण यूनिकोड पाठ को एक सामान्यीकरण रूप से दूसरे में सामान्यीकृत करता है। स्रोत और लक्ष्य रूपों का चयन करें, अपना पाठ चिपकाएं, और परिवर्तित आउटपुट तुरंत दिखाई देता है।

विशेषताएं

  • सभी चार सामान्यीकरण रूप: NFC, NFD, NFKC, और NFKD को स्रोत और लक्ष्य दोनों के रूप में समर्थन करता है।
  • द्विदिश रूपांतरण: रूपों के किसी भी संयोजन के बीच स्वतंत्र रूप से स्विच करें।
  • रीयल-टाइम आउटपुट: पाठ तुरंत सामान्यीकृत होता है जब आप टाइप करते हैं या चिपकाते हैं।
  • किसी भी यूनिकोड script को संभालता है: लैटिन, CJK, अरबी, सिरिलिक और किसी भी अन्य यूनिकोड-एन्कोडेड पाठ के साथ काम करता है।

यह कैसे काम करता है

उपकरण चयनित लक्ष्य रूप के साथ मानक JavaScript String.prototype.normalize() विधि लागू करता है। यह यूनिकोड मानक परिशिष्ट #15 में परिभाषित यूनिकोड सामान्यीकरण का एक पूरी तरह से विनिर्देश-अनुपालन कार्यान्वयन है।

उपयोग के मामले

  • String तुलना सुधार: यह सुनिश्चित करने के लिए तुलना या अनुक्रमण से पहले पाठ को सामान्यीकृत करें कि दृश्यमान रूप से समान string सही ढंग से मेल खाएं।
  • खोज और डेटाबेस संगति: डेटाबेस में संग्रहीत करने से पहले उपयोगकर्ता इनपुट को एक एकल रूप (आमतौर पर NFC) में मानकीकृत करें ताकि डुप्लिकेट प्रविष्टियों को रोका जा सके जो केवल एन्कोडिंग में भिन्न हों।
  • संगतता मोड़ना: ligatures, सुपरस्क्रिप्ट और पूर्ण-चौड़ाई वर्णों को खोज अनुक्रमण या प्राकृतिक भाषा प्रसंस्करण के लिए उनके मानक समकक्षों में संक्षिप्त करने के लिए NFKC का उपयोग करें।