एन्कोडिंग मोड

इन नामों से भी जाना जाता है: डेटा मोड, न्यूमेरिक मोड, अल्फ़ान्यूमेरिक मोड, बाइट मोड, कांजी मोड, encoding modes, data modes, numeric mode, alphanumeric mode, byte mode, kanji mode

परिभाषा

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

चार मुख्य मोड

हर मोड अक्षरों की सीमा के बदले सघनता देता है। न्यूमेरिक मोड सिर्फ़ अंक सँभालता है, पर तीन अंक 10 बिट में पैक कर देता है, जबकि बाइट मोड कोई भी बाइट सँभालता है पर हर एक पर 8 बिट खर्च करता है।

अल्फ़ान्यूमेरिक मोड 45 अक्षरों का एक सेट कवर करता है: अंक 0–9, अंग्रेज़ी के बड़े अक्षर A–Z, स्पेस, और चिह्न $ % * + - . / तथा कोलन। छोटे अक्षर इस सेट में नहीं हैं, इसीलिए पूरी तरह बड़े अक्षरों वाला URL, वही URL छोटे अक्षरों में हो तो उससे छोटा कोड बना सकता है।

  • न्यूमेरिक: अंक 0–9, हर 3 अंक के लिए 10 बिट
  • अल्फ़ान्यूमेरिक: 45 अक्षर, हर 2 अक्षर के लिए 11 बिट
  • बाइट: कोई भी 8-बिट मान, हर बाइट के लिए 8 बिट
  • कांजी: Shift JIS के दो-बाइट अक्षर, हर एक के लिए 13 बिट

मोड इंडिकेटर और सेगमेंट

डेटा का हर खंड 4-बिट के मोड इंडिकेटर और अक्षरों की गिनती से शुरू होता है, जिसकी लंबाई मोड और वर्शन पर निर्भर करती है। एक कोड में ऐसे कई सेगमेंट हो सकते हैं, जैसे अंकों की लंबी कतार के लिए न्यूमेरिक और बाकी के लिए बाइट, जिससे नतीजा छोटा बन सकता है।

दूसरे 4-बिट इंडिकेटर अक्षर सेट की जगह सुविधाओं का संकेत देते हैं: कैरेक्टर एन्कोडिंग बताने के लिए ECI, डेटा को कई कोड में बाँटने के लिए स्ट्रक्चर्ड अपेंड, और GS1 तथा दूसरे उद्योग डेटा फ़ॉर्मैट के लिए FNC1। चार शून्य बिट का टर्मिनेटर डेटा खत्म करता है।

  • न्यूमेरिक 0001, अल्फ़ान्यूमेरिक 0010, बाइट 0100, कांजी 1000
  • ECI 0111, स्ट्रक्चर्ड अपेंड 0011
  • FNC1 पहली स्थिति 0101, दूसरी स्थिति 1001
  • टर्मिनेटर 0000

बाइट मोड और कैरेक्टर सेट

मानक में बाइट मोड की डिफ़ॉल्ट व्याख्या ISO-8859-1 (Latin-1) है, पर आज ज़्यादातर जेनरेटर UTF-8 लिखते हैं ताकि मात्राओं वाले अक्षर, दूसरी लिपियाँ और इमोजी सही बने रहें। रीडर आम तौर पर बाइट जाँचकर UTF-8 पहचान लेते हैं।

जहाँ कैरेक्टर सेट में कोई अस्पष्टता नहीं होनी चाहिए, वहाँ ECI हेडर उसे साफ़ तौर पर बता सकता है। उसके बिना रीडर कभी-कभार गलत अंदाज़ा लगाकर बिगड़े अक्षर दिखा सकता है।

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

छोटे अक्षर होने पर मेरा QR कोड बड़ा क्यों हो जाता है?

छोटे अक्षर अल्फ़ान्यूमेरिक सेट में नहीं हैं, इसलिए टेक्स्ट को प्रति अक्षर 5.5 बिट की जगह 8 बिट वाले बाइट मोड में जाना पड़ता है। बड़े अक्षर, अंक और कुछ चिह्न ज़्यादा कसकर पैक होते हैं।

क्या QR कोड इमोजी या गैर-लैटिन टेक्स्ट रख सकता है?

हाँ, UTF-8 का इस्तेमाल करने वाले बाइट मोड में, जिसे ज़्यादातर जेनरेटर और फ़ोन रीडर सपोर्ट करते हैं। ऐसा हर अक्षर कई बाइट लेता है, इसलिए क्षमता घट जाती है।

क्या एक QR कोड में न्यूमेरिक और टेक्स्ट डेटा मिलाए जा सकते हैं?

हाँ। डेटा को सेगमेंट में बाँटा जा सकता है, हर एक का अपना मोड, और अच्छे एन्कोडर वह बँटवारा चुनते हैं जिससे सबसे छोटा कोड बने।

स्रोत और मानक

सभी शब्द