उपयोग कैसे करें
- टेक्स्ट को बाइनरी में बदलने के लिए “एनकोड करें” चुनें, या बाइनरी को वापस टेक्स्ट में बदलने के लिए “डिकोड करें”।
- अपना टेक्स्ट या बाइनरी अंक टाइप या पेस्ट करें, या कोई फ़ाइल खोलें। टाइप करते ही परिणाम अपडेट होता जाता है।
- 8-बिट समूहों के लिए “विभाजक” चुनें: “स्पेस”, “कोई नहीं”, “कॉमा” या “नई लाइन”।
- अगर आपका टेक्स्ट UTF-8 में नहीं है, तो “टेक्स्ट एनकोडिंग” बदलें, फिर परिणाम कॉपी या डाउनलोड करें।
टेक्स्ट बाइनरी कैसे बनता है
कंप्यूटर टेक्स्ट को बाइट के रूप में सहेजते हैं। UTF-8 जैसी टेक्स्ट एनकोडिंग हर अक्षर को एक या अधिक बाइट से जोड़ती है, और हर बाइट 0 से 255 तक की एक संख्या होती है। आधार 2 में लिखने पर इस संख्या के लिए अधिकतम आठ अंक, यानी बिट, चाहिए। यह कन्वर्टर हर बाइट को ठीक आठ बिट में लिखता है और शुरुआती शून्य बनाए रखता है, ताकि सभी समूहों की चौड़ाई एक जैसी रहे और बाइनरी कोड को बिना यह अनुमान लगाए वापस पढ़ा जा सके कि एक बाइट कहाँ ख़त्म होता है और अगला कहाँ शुरू होता है।
सामान्य अंग्रेज़ी अक्षर, अंक और विराम चिह्न UTF-8 में एक-एक बाइट लेते हैं, इसलिए हर अक्षर 8 बिट का एक समूह बनता है। दूसरे अक्षर ज़्यादा जगह लेते हैं: é जैसे एक्सेंट वाले अक्षर दो बाइट, ज़्यादातर चीनी और जापानी अक्षर तीन बाइट और इमोजी चार बाइट लेते हैं, इसलिए एक अकेला इमोजी 32 बिट बन जाता है। अगर आप पश्चिमी यूरोपीय टेक्स्ट के लिए प्रति अक्षर एक बाइट चाहते हैं, तो “टेक्स्ट एनकोडिंग” मेनू में ISO-8859-1 या Windows-1252 चुनें।
बाइनरी को वापस टेक्स्ट में बदलना
“डिकोड करें” मोड में बिट को स्पेस, कॉमा या लाइन ब्रेक से अलग किए गए समूहों के रूप में पेस्ट करें। अलग किए गए समूहों में शुरुआती शून्य छोड़े जा सकते हैं, इसलिए 7-बिट ASCII प्रिंट करने वाले टूल का आउटपुट भी काम करता है। 0 और 1 की लगातार स्ट्रिंग को 8-बिट समूहों में बाँटा जाता है, इसलिए उसकी लंबाई 8 का गुणज होनी चाहिए। कोई भी दूसरा अक्षर, या 11111111 (255) से बड़ा समूह, उसकी स्थिति के साथ बताया जाता है।
इसके बाद बाइट को चुनी गई टेक्स्ट एनकोडिंग से पढ़ा जाता है। वही एनकोडिंग चुनें जिससे बाइनरी बनाया गया था, या रॉ बाइट देखने के लिए आउटपुट को हेक्स पर कर दें।
कोड में टेक्स्ट से बाइनरी
# Python
' '.join(f'{b:08b}' for b in 'Hi'.encode()) # '01001000 01101001'
bytes(int(g, 2) for g in '01001000 01101001'.split()).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')]
.map(b => b.toString(2).padStart(8, '0')).join(' ') // '01001000 01101001'
तकनीकी विवरण
| वर्णमाला | 0 1 |
|---|---|
| आउटपुट का आकार | प्रति बाइट 8 अंक (800%) |
| पैडिंग | कोई नहीं |
| मानक | बाइनरी स्थानीय मान प्रणाली |
| केस-संवेदी | नहीं |
उदाहरण
| इनपुट (UTF-8) | आउटपुट |
|---|---|
Hello, World! | 01001000 01100101 01101100 01101100 01101111 00101100 00100000 01010111 01101111 01110010 01101100 01100100 00100001 |
Base64.is | 01000010 01100001 01110011 01100101 00110110 00110100 00101110 01101001 01110011 |
你好 | 11100100 10111101 10100000 11100101 10100101 10111101 |
अक्सर पूछे जाने वाले प्रश्न
एक अक्षर में कितने बिट होते हैं?
ASCII में, और UTF-8 में अंग्रेज़ी अक्षरों के लिए, एक अक्षर एक बाइट यानी 8 बिट का होता है। UTF-8 में दूसरे अक्षर 16, 24 या 32 बिट लेते हैं। UTF-16 में हर अक्षर कम से कम 16 बिट लेता है।
क्या बिना स्पेस वाले बाइनरी को टेक्स्ट में बदला जा सकता है?
हाँ, बशर्ते स्ट्रिंग पूरे 8-बिट समूहों का लगातार क्रम हो। अगर शुरुआती शून्य हटा दिए जाने के कारण आपके समूहों में 8 से कम अंक हैं, तो उन्हें स्पेस या कॉमा से अलग रखें, ताकि डिकोडर को पता रहे कि हर बाइट कहाँ ख़त्म होता है।
क्या टेक्स्ट को बाइनरी में बदलना और किसी संख्या को बाइनरी में बदलना एक ही बात है?
क्या मेरा टेक्स्ट कहीं अपलोड होता है?
नहीं। रूपांतरण पूरी तरह आपके ब्राउज़र में होता है, इसलिए आप जो टेक्स्ट और फ़ाइलें बदलते हैं, वे कभी आपके डिवाइस से बाहर नहीं जातीं।