टेक्स्ट टू यूनिकोड कन्वर्टर

टेक्स्ट को यूनिकोड कोड पॉइंट्स, HTML एंटिटीज़ या JavaScript एस्केप अनुक्रमों में बदलें, और वापस डिकोड करें। पूर्ण एस्ट्रल-प्लेन और इमोजी समर्थन।

टेक्स्ट को यूनिकोड कोड पॉइंट्स में बदलें और वापस। HTML एंटिटीज़, JavaScript एस्केप्स या U+ नोटेशन चुनें। दोनों पैन एडिट करने योग्य हैं, और बेसिक मल्टीलिंगुअल प्लेन के बाहर के वर्ण — हर इमोजी सहित — को सरोगेट पेयर के बजाय एकल कोड पॉइंट के रूप में संभाला जाता है।

कोड पॉइंट्स, एनकोडिंग और सरोगेट पेयर

एक कोड पॉइंट बाइट नहीं है

यूनिकोड प्रत्येक वर्ण को एक संख्या निर्दिष्ट करता है जिसे कोड पॉइंट कहा जाता है, जो U+ के बाद हेक्साडेसिमल अंकों के रूप में लिखा जाता है। A U+0041 है, U+8702 है, और मधुमक्खी इमोजी U+1F41D है। वह संख्या वर्ण की पहचान है। इसे कैसे संग्रहीत किया जाता है — UTF-8, UTF-16, UTF-32 — एक अलग निर्णय है, जिसी यह उपकरण टेक्स्ट-टू-बाइनरी कन्वर्टर से अलग है।

सरोगेट पेयर का जाल

JavaScript स्ट्रिंग्स UTF-16 हैं। U+FFFF से ऊपर के कोड पॉइंट्स को दो 16-बिट आधे हिस्सों के रूप में संग्रहीत किया जाता है जिसे सरोगेट पेयर कहा जाता है। charCodeAt के साथ लूप वाला नाइव कोड एक इमोजी को 0xD800-0xDFFF के आसपास के दो बेमानी मानों के रूप में देखता है और "🐝".length को 2 रिपोर्ट करता है। यह कन्वर्टर कोड पॉइंट द्वारा पुनरावृत्त होता है, इसलिए मधुमक्खी इमोजी एक मान U+1F41D उत्पन्न करता है, न कि दो टूटे हिस्से।

चार आउटपुट प्रारूप

  • HTML दशमलव एंटिटीA। किसी भी HTML दस्तावेज़ और XML में काम करता है।
  • HTML हेक्स एंटिटीA। हेक्साडेसिमल में वही बात, जो इस बात से मेल खाती है कि यूनिकोड चार्ट कैसे लिखे जाते हैं।
  • JavaScript एस्केप\u0041। स्रोत कोड में स्ट्रिंग लिटरल्स के लिए। U+FFFF से ऊपर, ब्रेस्ड रूप \u{1F41D} आवश्यक है, और उपकरण इसे स्वचालित रूप से उत्सर्जित करता है।
  • कोड पॉइंट नोटेशनU+0041। विनिर्देशों और दस्तावेज़ीकरण में उपयोग किए जाने वाले रूप।

व्यावहारिक उपयोग

गैर-ASCII टेक्स्ट को एंटिटीज़ के रूप में एस्केप करने से वह उन सिस्टम्स में बच जाता है जो एनकोडिंग को बिगाड़ देते हैं, जैसे पुरानी ईमेल गेटवे या गलत कॉन्फ़िगर की गई डेटाबेस। कोड पॉइंट्स का निरीक्षण करना अदृश्य वर्णों का निदान करने का भी सबसे तेज़ तरीका है: एक ज़ीरो-विड्थ स्पेस (U+200B) या एक नॉन-ब्रेकिंग स्पेस (U+00A0) स्क्रीन पर सामान्य स्पेस जैसा ही दिखता है लेकिन स्ट्रिंग तुलनाओं को तोड़ता है। संदिग्ध टेक्स्ट यहाँ पेस्ट करें और अंतर तुरंत दिखाई देता है।

ओपन-सोर्स नोट: नेटिव JavaScript String.prototype.codePointAt और String.fromCodePoint के साथ लागू किया गया। कोई तृतीय-पक्ष लाइब्रेरी उपयोग नहीं की गई।

FAQ

एक इमोजी एकल U+1F41D क्यों उत्पन्न करता है न कि दो मान?
उपकरण UTF-16 कोड यूनिट के बजाय कोड पॉइंट द्वारा पुनरावृत्त होता है। इमोजी U+FFFF से ऊपर रहते हैं, इसलिए नाइव वर्ण लूप उन्हें सरोगेट पेयर में विभाजित करते हैं; यह नहीं करता।
इस और टेक्स्ट-टू-बाइनरी उपकरण के बीच क्या अंतर है?
यह उपकरण कोड पॉइंट्स दिखाता है, प्रत्येक वर्ण की अमूर्त पहचान। बाइनरी उपकरण उनके भंडारण के लिए उपयोग किए गए UTF-8 बाइट्स दिखाता है। एक वर्ण एक कोड पॉइंट लेकिन तीन बाइट्स हो सकता है।
क्या मैं प्रारूपों के मिश्रण को डिकोड कर सकता हूँ?
हाँ। डिकोडर एक ही इनपुट में &#..;, &#x..;, \uXXXX, \u{...} और U+.... को पहचानता है, और एस्केप्स के बीच का कोई भी टेक्स्ट जैसा का वैसा रखा जाता है।
मैं किसी स्ट्रिंग में अदृश्य वर्ण कैसे ढूँढूँ?
इसे पेस्ट करें और U+ नोटेशन पर स्विच करें। ज़ीरो-विड्थ स्पेस U+200B के रूप में दिखते हैं, नॉन-ब्रेकिंग स्पेस U+00A0 के रूप में, और बाइट-ऑर्डर मार्क U+FEFF के रूप में — स्क्रीन पर सभी अदृश्य लेकिन यहाँ स्पष्ट।
क्या HTML एंटिटीज़ को सीधे पृष्ठ में डालना सुरक्षित है?
हाँ, संख्यात्मक वर्ण संदर्भ HTML और XML में वैध हैं। ध्यान दें कि वे केवल वर्णों को ही एस्केप करते हैं; अविश्वसनीय सामग्री में <, > और & के उचित HTML एस्केपिंग के विकल्प नहीं हैं।
क्या कुछ मेरे ब्राउज़र से बाहर जाता है?
नहीं। रूपांतरण पूरी तरह स्थानीय रूप से की गई शुद्ध स्ट्रिंग मैनिपुलेशन है।