टेक्स्ट से द्विआधारी कनवर्टर

→
टेक्स्ट → UTF-8 बाइट → हर बाइट के 8 द्विआधारी अंक, स्पेस से अलग

टेक्स्ट से द्विआधारी: बाइट के स्तर पर एक स्ट्रिंग कैसी दिखती है

यह रूपांतरण क्या करता है

यह टेक्स्ट को UTF-8 के ज़रिए बाइट में बदलता है और फिर हर बाइट को आठ द्विआधारी अंकों में लिखता है। इसमें कोई गणित नहीं है — अक्षर तालिका में देखकर लिख दिया जाता है — पर नतीजा उन्हीं शून्य और एक की असली श्रृंखला होती है जो उस स्ट्रिंग के लिए संग्रहित या भेजी जाती।

सादे ASCII के बजाय UTF-8 क्यों

ASCII सिर्फ़ 128 अक्षर परिभाषित करता है, जो अंग्रेज़ी के लिए काफ़ी है और बाकी सबके लिए बिल्कुल नहीं। UTF-8 पहले 128 कोड ASCII जैसे ही रखता है और बाकी को दो, तीन या चार बाइट में फैला देता है, इसलिए अंग्रेज़ी स्ट्रिंग ठीक वही बाइट बनाती है जो ASCII बनाता, जबकि चीनी अक्षर या इमोजी भी काम कर जाते हैं। इसीलिए "A" एक बाइट है और एक चीनी अक्षर तीन।

टेक्स्ट से द्विआधारी तालिका

छोटी स्ट्रिंग और उनके द्विआधारी बाइट क्रम। बहु-बाइट पंक्तियाँ सबसे दिलचस्प हैं: वे दिखाती हैं कि एक अक्षर बाइटों का समूह कैसे बन जाता है, और हर बाइट की शुरुआती बिट का पहचानने लायक पैटर्न क्या होता है।

टेक्स्टद्विआधारी
A01000001
Hi01001000 01101001
OK01001111 01001011
12300110001 00110010 00110011
!00100001
Go01000111 01101111

वह बाइट जिसकी उम्मीद नहीं थी

टेक्स्ट संभालने में सबसे आम चौंक यही है कि स्ट्रिंग दिखने से लंबी निकलती है। पाँच अक्षर पाँच बाइट भी हो सकते हैं और पंद्रह भी, यह लिपि पर निर्भर है, और अक्षरों में लिखी कोई भी सीमा बाइट में लिखी सीमा से टकरा जाएगी। बाइट क्रम देख लेने पर यह बात ठोस हो जाती है: बहु-बाइट अक्षर की हर बाइट की शुरुआती बिट ख़ुद बता देती है कि वह अक्षर कितनी बाइट लेता है।

बाइट और अक्षर की गिनती अलग होती है

जब डेटाबेस कॉलम, API सीमा या हेडर फ़ील्ड बाइट में नापा जाए, तो अक्षर नहीं बाइट गिनें। कनवर्टर बाइट क्रम सीधे दिखाता है, इसलिए समूहों की संख्या ही बाइट की संख्या है, और सीमाएँ असल में यही आँकती हैं।

अक्सर पूछे जाने वाले सवाल

टेक्स्ट द्विआधारी में कैसे बदलता है?

हर अक्षर को UTF-8 एन्कोडिंग तालिका में देखा जाता है और उसके बाइट मान या मानों से बदल दिया जाता है, फिर हर बाइट को आठ द्विआधारी अंकों में लिखा जाता है। अक्षर A का बाइट मान 65 है, यानी 01000001, और वह ठीक एक बाइट लेता है क्योंकि वह मूल ASCII दायरे में है।

एक चीनी अक्षर एक बाइट से ज़्यादा क्यों लेता है?

क्योंकि UTF-8 को 256 से कहीं ज़्यादा अक्षर समेटने हैं, इसलिए पहले 128 के बाहर के अक्षर दो, तीन या चार बाइट में फैलाए जाते हैं। एक चीनी अक्षर आमतौर पर तीन बाइट लेता है, इसीलिए यहाँ वह एक के बजाय आठ-आठ अंकों के तीन समूहों में दिखता है।

क्या यह ASCII जैसा ही है?

सादे अंग्रेज़ी टेक्स्ट के लिए हाँ — UTF-8 इसी तरह बनाया गया कि पहले 128 कोड ASCII से बाइट-दर-बाइट एक जैसे रहें, इसलिए "Hello" दोनों में एक ही तरह एन्कोड होता है। जैसे ही कोई नुक्ता वाला अक्षर, मुद्रा चिह्न या गैर-लातिनी लिपि आती है, दोनों अलग हो जाते हैं: वहाँ ASCII के पास देने के लिए कुछ नहीं होता और UTF-8 के पास होता है।

बाइट के बीच स्पेस क्यों होते हैं?

क्योंकि लगातार चलती द्विआधारी पढ़ी नहीं जाती और उसमें गिनती बिगड़ना आसान है, जबकि आठ-आठ के स्पेस वाले समूह बाइट की सीमाएँ सीधे दिखा देते हैं। डिकोड करते समय इनपुट के स्पेस अनदेखे किए जाते हैं, इसलिए इस पेज से कॉपी किया क्रम बिना संपादन के वापस चिपकाया जा सकता है।

क्या यह इमोजी संभालता है?

हाँ। इमोजी उस दायरे से ऊपर बैठते हैं जहाँ तक तीन बाइट पहुँचती हैं, इसलिए UTF-8 उनमें से ज़्यादातर को चार बाइट में एन्कोड करता है, और यहाँ वे आठ-आठ अंकों के चार समूहों में दिखते हैं। एन्कोड होने के बाद एक इमोजी छोटे अंग्रेज़ी शब्द से भी लंबा हो सकता है।

इस कन्वर्टर को जोड़ने के लिए नीचे दिया गया कोड कॉपी करें और अपनी वेबसाइट में पेस्ट करें।

<!-- टेक्स्ट से द्विआधारी -->
<iframe src="https://unitflow.net/hi/embed/text-to-binary" title="टेक्स्ट से द्विआधारी" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/hi/text-to-binary" target="_blank" rel="noopener">यूनिटफ्लो द्वारा संचालित</a></p>