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

→
द्विआधारी अंक → हर UTF-8 बाइट के 8 बिट → डिकोड किए गए अक्षर

द्विआधारी से टेक्स्ट: बाइट खोलना, और यह जानना कि नहीं खुलेगा

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

यह द्विआधारी बाइटों के क्रम को पढ़कर उन्हें UTF-8 टेक्स्ट के रूप में डिकोड करता है। आठ बिट की एक बाइट बनती है, फिर बाइटों को साथ डिकोड किया जाता है, क्योंकि एक अक्षर उनमें से कई पर फैल सकता है। असली मेहनत इसी डिकोडिंग में है: बाइट की सीमाएँ अक्षर की सीमाओं के बारे में कुछ नहीं बतातीं।

डिकोडर को पता कैसे चलता है कि अक्षर कहाँ ख़त्म होता है

हर बाइट की शुरुआती बिट उसका काम बता देती हैं। 0 से शुरू होने वाली बाइट अकेली चलती है, 110 से शुरू होने वाली दो बाइट का अक्षर खोलती है, 1110 तीन बाइट का और 11110 चार बाइट का, जबकि जारी रखने वाली बाइट 10 से शुरू होती हैं। यही ढाँचा डिकोडर को बिना बताए स्ट्रीम चलाने देता है, और यही ग़लत जगह से कटी स्ट्रीम को पकड़ में लाता है।

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

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

द्विआधारीटेक्स्ट
01000001A
01100001a
01001000 01101001Hi
01001111 01001011OK
00110001 00110010 00110011123
11100100 10111000 10101101中

मोजीबेक कहाँ से आता है

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

बाइट के समूह साबुत रखें

आठ-आठ अंकों के पूरे समूह कॉपी करें। बाइट के बीच से चिपकाना शुरू करने पर डिकोडर के पास समझने लायक क्रम बचता ही नहीं, और उसके बाद आने वाला त्रुटि संदेश सही होता है पर यह नहीं बताता कि चिपकाना कहाँ से शुरू हुआ था।

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

द्विआधारी को वापस टेक्स्ट में कैसे डिकोड करें?

द्विआधारी को आठ-आठ अंकों के समूहों में बाँटें, हर समूह को एक बाइट मानें, और बाइटों को UTF-8 के रूप में डिकोड करें। अक्षर A, 01000001 है, इसलिए एक समूह एक अक्षर बनता है; लंबा क्रम लंबी स्ट्रिंग बनाता है, जिसमें कुछ अक्षर कई समूहों पर फैले होते हैं।

अजीब अक्षरों के बजाय त्रुटि क्यों मिलती है?

क्योंकि वह बाइट क्रम वैध UTF-8 नहीं है — वह अधूरा कटा, क्रम से बाहर, या टेक्स्ट ही नहीं हो सकता। उसे अस्वीकार करना जानबूझकर है: दूसरा रास्ता प्रतिस्थापन चिह्न लगाना होता, जिससे ऐसा नतीजा बनता है जो डिकोडिंग की समस्या जैसा दिखता है, जबकि असली बात यह है कि वे बाइट कभी टेक्स्ट थे ही नहीं।

क्या बाइट के बीच स्पेस के बिना द्विआधारी चिपका सकता हूँ?

हाँ। जिस लगातार क्रम की लंबाई आठ की गुणज हो, वह अपने आप बाइटों में बँट जाता है, इसलिए बिना विभाजक वाले स्रोत से ली गई द्विआधारी बिना सँवारे बदल जाती है। स्पेस वाला और बिना स्पेस वाला रूप एक ही बात कहते हैं।

अकेली 127 से ऊपर की बाइट का क्या मतलब है?

यह बताती है कि वह किसी बहु-बाइट अक्षर का हिस्सा है, ख़ुद कोई अक्षर नहीं। इस दायरे की अकेली बाइट का कोई वैध UTF-8 अर्थ नहीं होता और उसे अस्वीकार कर दिया जाता है, जो सही व्यवहार है — जिस अक्षर की वह थी, वह अधूरा है।

क्या यह किसी भी भाषा के टेक्स्ट पर चलता है?

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

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

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