Unicode और UTF-8 क्या हैं?
Unicode हर लिपि के हर कैरेक्टर को एक नंबर (कोड पॉइंट, जैसे अरबी अलिफ़ के लिए U+0627) देता है; UTF-8 वह एन्कोडिंग है जो उन नंबरों को एक से चार बाइट में बदलती है और वेब व JSON में डिफ़ॉल्ट है। ज़्यादातर "टूटे टेक्स्ट" वाले बग या तो UTF-8 बाइट सीक्वेंस का किसी और एन्कोडिंग में पढ़ा जाना हैं, या स्ट्रिंग का बाइट में गिना जाना जहाँ प्रोग्राम कैरेक्टर की उम्मीद करता था।
Unicode डिकोडर कैसे इस्तेमाल करें
- एस्केप किया हुआ टेक्स्ट पेस्ट करें (मिले-जुले नोटेशन भी चलेंगे)।
- डिकोड किया हुआ टेक्स्ट और एस्केप की गिनती पढ़ें।
- अदृश्य या एक जैसे दिखने वाले कैरेक्टर पहचानने के लिए इंस्पेक्टर इस्तेमाल करें।
- सादा टेक्स्ट कॉपी करें।
Unicode डिकोडर की खूबियाँ
- \uXXXX, \u{…}, \UXXXXXXXX, \xHH, U+XXXX, &#NNN;, &#xHH; और CSS एस्केप डिकोड करता है
- सरोगेट पेयर को एक ही कैरेक्टर में जोड़ता है; अकेले सरोगेट पर चेतावनी देता है
- बताता है कि कौन-से नोटेशन मिले और कितने एस्केप डिकोड हुए
- कोड पॉइंट, दशमलव, स्क्रिप्ट/श्रेणी और UTF-8 बाइट दिखाने वाला कैरेक्टर इंस्पेक्टर
- पेस्ट करते ही लाइव डिकोडिंग
Unicode डिकोडर का उदाहरण
मिले-जुले एस्केप डिकोड करना
इनपुट:
\u0645\u0631\u062d\u0628\u0627 U+2014 नमस्ते \ud83d\ude80आउटपुट:
مرحبا — नमस्ते 🚀Unicode डिकोडर के बारे में अक्सर पूछे जाने वाले सवाल
कौन-से नोटेशन पहचाने जाते हैं?
\uXXXX (JS/JSON/Java), \u{X…} (ES2015), \UXXXXXXXX और \xHH (Python/C), U+XXXX (डॉक्युमेंटेशन), &#NNN; / &#xHH; (HTML) तथा CSS \HHHH एस्केप — ये सब एक ही टेक्स्ट में मिले-जुले भी चलते हैं।
सरोगेट पेयर कैसे संभाले जाते हैं?
लगातार आने वाले \uD83D\uDE80 एस्केप जोड़कर एक ही 🚀 कैरेक्टर बना दिए जाते हैं। अकेला सरोगेट चेतावनी के रूप में बताया जाता है, क्योंकि वह वैध यूनिकोड नहीं है।
इंस्पेक्टर क्या दिखाता है?
हर बने हुए कैरेक्टर को उसके कोड पॉइंट, दशमलव मान, स्क्रिप्ट/श्रेणी और UTF-8 बाइट के साथ, ताकि आप अदृश्य कैरेक्टर (zero-width स्पेस, RTL मार्क) या भ्रम पैदा करने वाले अक्षर पहचान सकें।
क्या यह JSON स्ट्रिंग डिकोड करता है?
यह उनके भीतर मौजूद \u एस्केप डिकोड करता है। \n, \t और कोट्स भी संभालने के लिए JSON एस्केप/अनएस्केप टूल इस्तेमाल करें।
तकनीकी नोट्स
हर एस्केप को उसकी रेंज के अनुसार String.fromCharCode या String.fromCodePoint से बदला जाता है; इसलिए आस-पास के हाई और लो सरोगेट अपने आप एक कोड पॉइंट में मिल जाते हैं। इंस्पेक्टर कैरेक्टर को यूनिकोड प्रॉपर्टी एस्केप (\p{L}, \p{Script=Arabic}, …) से वर्गीकृत करता है, जो आधुनिक JavaScript इंजनों में उपलब्ध हैं।
संदर्भ
- The Unicode Standardसार्वभौमिक कैरेक्टर सेट और उसके एन्कोडिंग रूप (UTF-8, UTF-16, UTF-32), नॉर्मलाइज़ेशन और हर कोड पॉइंट के गुण।
- RFC 3629: UTF-8, a transformation format of ISO 10646UTF-8 में कोड पॉइंट एक से चार बाइट में कैसे एन्कोड होते हैं, और कौन-सी बाइट सीक्वेंस अमान्य हैं।