टेक्स्ट को बाइनरी, हेक्साडेसिमल, ऑक्टल या दशमलव में बदलें और वापस डिकोड करें। UTF-8 जागरूक, कॉन्फ़िगर योग्य विभाजक और ज़ीरो पैडिंग के साथ। पूरी तरह आपके ब्राउज़र में चलता है।
टेक्स्ट को बाइनरी, हेक्स, ऑक्टल या दशमलव में बदलें — और वापस। दोनों पैन एडिट करने योग्य हैं, इसलिए आप टेक्स्ट एनकोड कर सकते हैं या डिकोड करने के लिए एक एनकोडेड स्ट्रिंग पेस्ट कर सकते हैं। एनकोडिंग UTF-8 बाइट आधारित है, जिसका अर्थ है कि उच्चारण-चिह्नित अक्षर, CJK वर्ण और इमोजी सभी राउंड ट्रिप से बच जाते हैं।
टेक्स्ट बाइट्स कैसे बनता है
वर्ण बाइट्स नहीं होते
एक वर्ण एक अमूर्त विचार है; एक बाइट आठ बिट्स स्टोरेज है। एक को दूसरे में बदलने के लिए एक एनकोडिंग की आवश्यकता होती है। यह उपकरण UTF-8 का उपयोग करता है, वेब के 98% से अधिक के पीछे की एनकोडिंग। UTF-8 में ASCII रेंज A-Z, a-z, 0-9 और सामान्य विराम चिह्न बिल्कुल एक बाइट लेते हैं, इसलिए A01000001 है। उच्चारण-चिह्नित लातिनी और यूनानी दो बाइट्स लेते हैं, अधिकांश CJK वर्ण तीन लेते हैं, और इमोजी चार।
यह राउंड ट्रिप्स के लिए क्यों मायने रखता है
पुराने टेक्स्ट-टू-बाइनरी उपकरण charCodeAt को कॉल करते हैं और 8 बिट्स तक काटते हैं। यह सादे ASCII के लिए काम करता है और बाकी सब कुछ को चुपचाप भ्रष्ट कर देता है, इसलिए é एक अलग वर्ण या प्रतिस्थापन ग्लिफ़ के रूप में वापस आता है। चूँकि यह कन्वर्टर वास्तविक UTF-8 बाइट्स को एनकोड करता है, चीनी वर्णों और एक इमोजी वाली स्ट्रिंग ठीक वैसे ही डिकोड होती है जैसे आपने शुरू किया था।
बेस चुनना
बाइनरी कच्चा बिट पैटर्न दिखाता है, जो तब चाहिए जब आप समझा रहे हों कि एनकोडिंग कैसे काम करती है या किसी बिट-स्तरीय प्रोटोकॉल को डिबग कर रहे हों।
हेक्साडेसिमल व्यावहारिक डिफ़ॉल्ट है। प्रति बाइट दो हेक्स अंक बाइट सीमाओं को स्पष्ट बनाते हैं, जिसी हर हेक्स एडिटर और नेटवर्क डंप इसका उपयोग करते हैं।
ऑक्टल एक बार में तीन बिट्स को समूहित करता है और मुख्य रूप से Unix अनुमतियों और कुछ C एस्केप अनुक्रमों में दिखता है।
दशमलव ज़ोर से पढ़ने में सबसे आसान है लेकिन बिट संरचना को पूरी तरह छिपा देता है।
विभाजक और पैडिंग
ज़ीरो पैडिंग हर बाइट को समान चौड़ाई का बनाती है — बाइनरी में आठ वर्ण, हेक्स में दो — ताकि मानों के बीच कोई विभाजक न होने पर भी आउटपुट को विश्वसनीय रूप से विभाजित किया जा सके। यदि आप पैडिंग बंद करते हैं, तो एक विभाजक रखें, अन्यथा 1 और 10 आपस में जुड़ जाएँगे और परिणाम को अस्पष्ट रूप से डिकोड नहीं किया जा सकेगा। डिकोड करते समय, रिक्त स्थान, अल्पविराम और न्यूलाइन के किसी भी मिश्रण को स्वीकार किया जाता है।
FAQ
मेरा चीनी वर्ण आठ बिट्स के तीन समूह क्यों है?
UTF-8 अधिकांश CJK वर्णों को तीन बाइट्स के रूप में एनकोड करता है, और प्रत्येक बाइट एक आठ-बिट समूह बन जाता है। यह सही व्यवहार है, कोई त्रुटि नहीं।
क्या मैं बिना विभाजक के बाइनरी डिकोड कर सकता हूँ?
हाँ, बशर्ते वह ज़ीरो-पैडेड रहा हो। डिकोडर निश्चित-चौड़ाई वाले स्लाइसिंग पर वापस आ जाता है — बाइनरी में प्रति बाइट आठ वर्ण, हेक्स में दो — जब उसे कोई विभाजक नहीं मिलता।
क्या यह ASCII या UTF-8 उपयोग करता है?
UTF-8। सादी ASCII रेंज के लिए दोनों समान हैं, इसलिए अंग्रेज़ी टेक्स्ट दोनों तरह समान दिखता है, लेकिन UTF-8 हर अन्य वर्ण को भी सही ढंग से संभालता है।
मैं अपना इनपुट डिकोड करते समय त्रुटि क्यों पाता हूँ?
हर समूह को चयनित बेस में 0 और 255 के बीच एक मान के रूप में पार्स होना चाहिए। 256 का मान, बाइनरी मोड में कोई भटका अक्षर, या गलत बेस चुनने से सभी इसे ट्रिगर करेंगे।
क्या यह Base64 के समान है?
नहीं। Base64 डेटा को कॉम्पैक्ट रखने के लिए तीन बाइट्स को चार प्रिंट योग्य वर्णों में पैक करता है। यह उपकरण प्रत्येक बाइट को एक चुनी हुई संख्यात्मक बेस में अलग से रेंडर करता है, जो कहीं अधिक विस्तृत है लेकिन मानव-पठनीय।
क्या मेरा टेक्स्ट कहीं भेजा जाता है?
नहीं। एनकोडिंग और डिकोड दोनों ब्राउज़र के निर्मित TextEncoder और TextDecoder का उपयोग करते हैं, पूरी तरह आपकी मशीन पर।