इस्तेमाल करने का तरीका
- एन्कोड करने के लिए “Text → bytes” या डिकोड करने के लिए “Bytes → text” चुनें।
- बाइट फ़ॉर्मैट चुनें: बाइनरी, हेक्साडेसिमल, दशमलव या ऑक्टल।
- अपना इनपुट लिखें या पेस्ट करें। टाइप करते ही नतीजा और बाइट की गिनती अपडेट होती है।
- नतीजे को कॉपी करें या दोनों तरफ़ का रूपांतरण जाँचने के लिए उसे इनपुट में डालें।
यह कैसे काम करता है
कंप्यूटर टेक्स्ट को बाइट के रूप में स्टोर करते हैं। यह टूल UTF-8 का उपयोग करता है, जो लगभग हर वेबसाइट और आधुनिक सिस्टम में इस्तेमाल होने वाली एन्कोडिंग है। UTF-8 में 128 ASCII कैरेक्टर (अंग्रेज़ी के अक्षर, अंक और सामान्य विराम चिह्न) हर एक एक बाइट लेते हैं। इसलिए बाइनरी में H का रूप 01001000 और हेक्साडेसिमल में 48 होता है। बाकी सभी कैरेक्टर दो से चार बाइट लेते हैं: é 2 बाइट (C3 A9) लेता है, € और ☕ 3 बाइट लेते हैं, और ज़्यादातर इमोजी 4 बाइट लेते हैं। इसीलिए बाइट की गिनती कैरेक्टर की गिनती से ज़्यादा हो सकती है और एक कैरेक्टर कई 8-बिट समूहों में बदल सकता है।
हर बाइट को चार आम तरीकों से लिखा जा सकता है: 8 अंकों की बाइनरी (00000000–11111111), 2 अंकों की हेक्साडेसिमल (00–FF), दशमलव (0–255) या 3 अंकों की ऑक्टल (000–377)। जब बाइट के बीच कोई विभाजक न हो, तो बाइनरी, हेक्स और ऑक्टल मानों को तय लंबाई तक शून्य जोड़कर लिखा जाता है। दशमलव मानों को 3 अंकों तक शून्य जोड़कर लिखा जाता है, ताकि उन्हें फिर से बिना किसी भ्रम के अलग किया जा सके।
डिकोड करते समय फ़ॉर्मैटिंग में छूट दी जाती है: बाइट के बीच के स्पेस, लाइन ब्रेक, कॉमा और सेमीकोलन नज़रअंदाज़ किए जाते हैं। 0x और 0b प्रीफ़िक्स और \x एस्केप भी नज़रअंदाज़ किए जाते हैं। हर समूह की जाँच होती है; चुने गए फ़ॉर्मैट में अमान्य अंक या 255 से बड़ी वैल्यू मिलने पर बाइट की स्थिति बताई जाती है। डिकोड करने के बाद बाइट की वैध UTF-8 के लिए जाँच होती है और अगर वे टेक्स्ट न हों, तो आपको बताया जाता है।
कई कोड पॉइंट से बने कैरेक्टर, जैसे झंडे या त्वचा के रंग वाले इमोजी, यहाँ कई कैरेक्टर गिने जाते हैं, क्योंकि हर कोड पॉइंट अलग से एन्कोड होता है।
उदाहरण
बाइनरी में क्लासिक “Hi”
H का ASCII मान 72 और i का 105 है। इसलिए “Hi” बाइनरी में 01001000 01101001, हेक्स में 48 69 और दशमलव में 72 105 बनता है: 2 कैरेक्टर, 2 बाइट, 16 बिट।
“Café” 5 बाइट क्यों लेता है
C, a और f हर एक एक बाइट लेते हैं, लेकिन UTF-8 में é दो बाइट लेता है: 11000011 10101001 (C3 A9)। इस शब्द में 4 कैरेक्टर हैं, लेकिन यह 5 बाइट लेता है। डेटाबेस कॉलम की सीमा और बाइट में मापे जाने वाले प्रोटोकॉल फ़ील्ड के लिए यह मायने रखता है।
हेक्स डंप पढ़ना
डीबगर में 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c दिखता है। इसे “Bytes → text” और Hexadecimal चुनकर पेस्ट करें, ताकि “Hello, 世界” मिले; हर चीनी कैरेक्टर 3 बाइट लेता है।
अक्सर पूछे जाने वाले सवाल
एक कैरेक्टर 16, 24 या 32 बिट में क्यों बदलता है?
UTF-8 में केवल ASCII कैरेक्टर एक बाइट (8 बिट) में आते हैं। उच्चारण-चिह्न वाले अक्षर और ज़्यादातर दूसरी लिपियों के अक्षर 2 बाइट लेते हैं; चीनी, जापानी, कोरियाई और कई प्रतीक 3 बाइट लेते हैं, जबकि इमोजी 4 बाइट लेते हैं। हर बाइट को अलग समूह के रूप में दिखाया जाता है।
क्या यह ASCII है या UTF-8?
UTF-8। सामान्य अंग्रेज़ी टेक्स्ट के लिए नतीजा ASCII जैसा ही होता है, क्योंकि UTF-8 को ASCII के साथ संगत रहने के लिए बनाया गया था। ASCII से बाहर के कैरेक्टर को केवल ASCII में दिखाना संभव नहीं होगा।
बाइनरी डिकोड करते समय त्रुटि क्यों आती है?
हर बाइट में अधिकतम 8 बाइनरी अंक होने चाहिए और उनमें केवल 0 और 1 होने चाहिए। स्पेस न होने पर, अंकों की कुल संख्या 8 का गुणज होनी चाहिए। त्रुटि संदेश उस बाइट की पहचान बताता है जिसे पढ़ा नहीं जा सका।
“मान्य UTF-8 नहीं” का क्या मतलब है?
बाइट वैध UTF-8 क्रम नहीं बनाते, जैसे 127 से बड़ी कोई अकेली बाइट या बीच में कटा हुआ क्रम। डेटा Windows-1252 जैसी किसी दूसरी एन्कोडिंग वाली फ़ाइल से आया हो सकता है या हो सकता है कि वह टेक्स्ट ही न हो।
गोपनीयता
रूपांतरण आपके ब्राउज़र में इसके बिल्ट-इन UTF-8 एन्कोडर और डिकोडर से होता है। आपका टेक्स्ट अपलोड या स्टोर नहीं किया जाता और न ही उसे एनालिटिक्स में शामिल किया जाता है।