टेक्स्ट एनकोडिंग

बाइनरी ट्रांसलेटर

टेक्स्ट 7 अक्षर
बाइनरी 62 अक्षर
01001110 01100001 01101101 01100001 01110011 01110100 01100101
लाइव · UTF-8, आठ बिट प्रति बाइट

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

बाइनरी कैसे बदलें

1 अपना टेक्स्ट लिखिए या पेस्ट कीजिए। टाइप करते ही बग़ल में बाइनरी बनती जाती है।
2 दूसरी दिशा में जाने और बाइनरी पेस्ट करने के लिए «उलटें» दबाइए।
3 लंबा टेक्स्ट लोड करने के लिए .txt फ़ाइल डिब्बे पर छोड़ दीजिए।

देवनागरी का एक अक्षर तीन बाइट का होता है

यह इस पेज पर हिंदी पाठक के लिए सबसे काम की बात है। UTF-8 परिवर्तनशील लंबाई वाला है: पहले 128 अक्षर — यानी सादे अंग्रेज़ी अक्षर, अंक और विराम चिह्न — एक-एक बाइट लेते हैं, जबकि देवनागरी का पूरा खंड (U+0900 से U+097F) तीन-तीन बाइट लेता है। इसका सीधा नतीजा यह है कि «नमस्ते» सात नहीं, अठारह बाइट का है — छह ग्राफ़ीम, पर भीतर छह अलग कोड पॉइंट और हर एक तीन बाइट का। यानी हिंदी की एक पंक्ति की बाइनरी अंग्रेज़ी की उतनी ही लंबी पंक्ति से लगभग तीन गुना होती है।

यही बात उन सीमाओं में भी दिखती है जो बाइट में नापी जाती हैं और अक्षरों में नहीं: डेटाबेस कॉलम, पुराने फ़ॉर्म फ़ील्ड और URL की लंबाई। जहाँ 255 बाइट की सीमा अंग्रेज़ी में 255 अक्षर देती है, वहीं हिंदी में वह 85 के आसपास सिमट जाती है।

ASCII के पड़ाव

बड़ा A 65 है और छोटा a 97: ठीक 32 का फ़र्क़, और 32 अपने आप में एक ही बिट है — इसीलिए 01000001 और 01100001 में सिर्फ़ एक जगह फ़र्क़ है, और इसीलिए केस बदलना कभी टेबल में खोजने के बजाय बिट पलटने का काम था। स्पेस 32 है, अंक शून्य 48 है, और छपने लायक़ रेंज 32 से 126 तक चलती है। 32 से नीचे सब कुछ कंट्रोल कोड है, और इसीलिए टेक्स्ट फ़ाइल से चिपकाया Windows का लाइन-एंडिंग दो बाइट — 00001101 00001010 — बनकर आता है, जबकि Unix का एक ही 00001010 होता है।

डिकोड करना ज़्यादा नाज़ुक दिशा है

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

लोग इसे किस काम में लेते हैं

  • किसी पहेली या CTF की बाइनरी स्ट्रिंग पढ़ना
  • यह देखना कि किसी ख़ास स्ट्रिंग से कौन-से बिट बनते हैं
  • बिट स्तर के कैप्चर को वापस टेक्स्ट की तरह पढ़ना
  • हाथ से की गई गणना जाँचना
  • कक्षा में अक्षर-एनकोडिंग समझाना
  • यह देखना कि देवनागरी का एक अक्षर सचमुच कितने बाइट लेता है

सवाल

01000001, यानी कोड 65 को आठ बिट तक भरा हुआ। छोटा a 01100001 है।

Unicode Consortium, UTF-8 और एनकोडिंग रूप
क्या यह टूल काम आया?
सिर्फ़ आंतरिक संकेत · इससे पता चलता है कि कौन-सा टूल दोबारा बनाने लायक़ है