एक घुमावदार एपॉस्ट्रॉफ़ी उस टेक्स्ट की कीमत बदल सकती है जिसमें बाकी सब सामान्य लैटिन अक्षर हों। फ़ोन पर वाक्य लगभग वैसा ही दिखता है। लेकिन उसे भेजने के लिए Bird को ज़्यादा नेटवर्क सेगमेंट चाहिए होते हैं।
दो एन्कोडिंग कौन-सी हैं?
GSM-7 एक संक्षिप्त वर्णमाला का उपयोग करता है, जबकि UCS-2 उस वर्णमाला से बाहर के अक्षरों को दर्शाता है।
सामान्य लैटिन अक्षर, अंक, आम विराम चिह्न और कुछ मात्रा-चिह्न वाले अक्षर GSM-7 में आ जाते हैं। SMS वर्णमाला विनिर्देश इस समूह को परिभाषित करता है।
UCS-2 उस समूह से बाहर के अक्षर ले जाता है, जिनमें घुमावदार उद्धरण चिह्न और इमोजी शामिल हैं। कुछ इमोजी इसकी अक्षर सीमा में दो गिने जाते हैं।
चीनी, जापानी, कोरियाई, सिरिलिक, अरबी, थाई और हिंदी टेक्स्ट के लिए ऐसे अक्षर चाहिए जो Bird की GSM-7 वर्णमाला से बाहर हैं।
Bird एन्कोडिंग कैसे चुनता है?
Bird पूरे मुख्य भाग को GSM-7 के अनुसार जाँचता है, और यदि कोई भी अक्षर इस जाँच में विफल हो, तो UCS-2 का उपयोग करता है।
एन्कोडिंग पूरे मुख्य भाग पर लागू होती है। घुमावदार एपॉस्ट्रॉफ़ी को आसपास के शब्दों से अलग एन्कोडिंग नहीं मिलती। उसके होने से उन शब्दों की एन्कोडिंग भी बदल जाती है।
आप परिणाम segments.encoding से जाँच सकते हैं, जिसके मान GSM_7BIT और UCS2 हैं।
एन्कोडिंग से सेगमेंट की संख्या कैसे बदलती है?
व्यापक एन्कोडिंग हर बिल योग्य सेगमेंट में टेक्स्ट के लिए कम जगह छोड़ती है।
Bird ये सीमाएँ लागू करता है:
| एन्कोडिंग | एक सेगमेंट | विभाजित होने पर प्रत्येक भाग |
|---|---|---|
| GSM-7 | 160 अक्षर | 153 अक्षर |
| UCS-2 | 70 अक्षर | 67 अक्षर |
इन सीमाओं में कुछ अक्षर दोगुने गिने जाते हैं, जिनकी सूची नीचे दी गई है। विभाजित हर भाग में हेडर के लिए जगह आरक्षित रहती है, ताकि फ़ोन भागों को जोड़ सके। संयोजित SMS में हेडर के बारे में बताया गया है।
155 सामान्य लैटिन अक्षरों वाला संदेश एक GSM-7 सेगमेंट में आ जाता है। इसमें एक घुमावदार अपॉस्ट्रॉफ़ी जोड़ने पर 156 अक्षरों का संदेश UCS-2 में बदल जाता है। यह 70 से अधिक है, इसलिए मल्टीपार्ट सीमा लागू होती है: 156 को 67 से भाग देने पर पूर्णांकित परिणाम तीन सेगमेंट होता है।
Bird हर सेगमेंट का बिल अलग से बनाता है। SMS सेगमेंट में बताया गया है कि यह गिनती बिल योग्य मात्रा कैसे बनती है।
किन वर्णों पर विशेष ध्यान देना होता है?
घुमावदार विराम चिह्न, इमोजी और GSM-7 वर्णमाला से बाहर के अक्षर पूरे संदेश की एन्कोडिंग बदल सकते हैं।
- सीधे एपॉस्ट्रॉफ़ी GSM-7 में आ जाते हैं; घुमावदार एपॉस्ट्रॉफ़ी नहीं आते।
- साधारण हाइफ़न आ जाता है; टाइपोग्राफ़िक एन डैश और एम डैश नहीं आते।
- तीन पूर्ण विराम बिंदु आ जाते हैं; एकल एलिप्सिस वर्ण
…नहीं आता। éऔरüआ जाते हैं;á,íऔरúनहीं आते।
GSM-7 इन वर्णों को दोगुना गिनता है: ^, {, }, \, [, ], ~, | और €। फ़ॉर्म फ़ीड, जो पेज ब्रेक का अनुरोध करने वाला एक नियंत्रण वर्ण है, भी दोगुना गिना जाता है। इसलिए अस्सी यूरो चिह्न एक सेगमेंट भर देते हैं।
UCS-2 में 😀 जैसा इमोजी दोगुना गिना जाता है। पैंतीस इमोजी एक सेगमेंट भर देते हैं। एक और जोड़ने पर उसकी क्षमता पार हो जाती है।1
क्या स्मार्ट एन्कोडिंग इस बदलाव से बचा सकती है?
जब बदलाव के बाद हर वर्ण GSM-7 में आ जाए, तब स्मार्ट एन्कोडिंग समर्थित विराम चिह्नों को बदल सकती है।
आप इसे हर भेजने के अनुरोध में options.smart_encoding से चालू करते हैं, जो एक boolean है और true या false स्वीकार करता है; डिफ़ॉल्ट false है। घुमावदार एपॉस्ट्रॉफ़ी सीधा एपॉस्ट्रॉफ़ी बन सकता है। एलिप्सिस तीन पूर्ण विराम बिंदु बन सकता है।
अगर कोई असमर्थित कैरेक्टर बचा रह जाता है, तो Bird मूल बॉडी को बिना बदले छोड़ देता है। इसलिए अरबी या जापानी टेक्स्ट पर Unicode की क्षमता सीमाएँ ही लागू रहती हैं। सेटिंग बदलने से ये लिपियाँ GSM-7 में फ़िट नहीं हो सकतीं।
स्मार्ट एन्कोडिंग बदलाव के नियम बताता है, और सेगमेंट कैलकुलेटर भेजने से पहले टेक्स्ट की जाँच करता है।
Footnotes
-
अपने कैलकुलेटर बनाने के लिए जानें कि Bird GSM-7 को सेप्टेट में और
UCS2को UTF-16 कोड यूनिट में मापता है। GSM-7 एक्सटेंशन वर्ण दो सेप्टेट लेते हैं। Unicode के पहले ब्लॉक से बाहर के वर्णों के लिए, जिनमें😀शामिल है, UTF-16 दो कोड यूनिट लेता है। ↩
संक्षेप में
संदेश का टेक्स्ट एन्कोडिंग तय करता है।
जब हर अक्षर GSM-7 की वर्णमाला में आता है, तो Bird उसी का उपयोग करता है, और कोई भी अक्षर उसके बाहर हो तो UCS-2 का।
कुछ अक्षर दो के बराबर गिने जाते हैं।
सामान्य लैटिन टेक्स्ट में हर सेगमेंट में 160 अक्षर आते हैं। बड़ी वर्णमाला में 70 आते हैं, और कुछ इमोजी दो के बराबर गिने जाते हैं।
संदेश को भागों में बाँटने पर हर भाग की क्षमता घटती है।
कई भागों वाले संदेशों में हेडर के लिए जगह आरक्षित रहती है। तब सामान्य लैटिन टेक्स्ट में हर भाग में 153 अक्षर आते हैं। बड़ी वर्णमाला में 67 आते हैं, और कुछ अक्षर दो के बराबर गिने जाते हैं।
स्मार्ट एन्कोडिंग के लिए आपको इसे स्पष्ट रूप से चुनना होता है।
Bird समर्थित अक्षरों को तभी बदलता है जब आप यह विकल्प चालू करते हैं और पूरा नतीजा GSM-7 में आ जाता है।