Sign inGet Started

SMS स्मार्ट एन्कोडिंग

टाइपोग्राफ़िक बदलाव किसी SMS को GSM-7 से बाहर कर सकते हैं। वर्ड प्रोसेसर ' को ’ में बदल देता है, चिपकाए गए टेक्स्ट में एम डैश होता है, या किसी फ़ॉर्म फ़ील्ड में नॉन-ब्रेकिंग स्पेस आ जाता है। हर अक्षर किसी GSM-7 अक्षर जैसा दिखता है, लेकिन एक भी गैर-GSM अक्षर पूरे संदेश को UCS-2 में बदल देता है, जिससे हर सेगमेंट की क्षमता घट जाती है।

Bird के संदेश को कैरियर को सौंपने से पहले स्मार्ट एन्कोडिंग इन अक्षरों को उनके GSM-7 समकक्षों से बदल देती है। इसलिए जो संदेश केवल गैर-GSM जैसा दिखता था, वह GSM-7 में ही रहता है और उसका बिल कम सेगमेंट के हिसाब से बनता है।

इसे चालू करना

यह डिफ़ॉल्ट रूप से बंद रहती है, क्योंकि यह वह टेक्स्ट बदल देती है जो आपका प्राप्तकर्ता पढ़ता है। भेजते समय options.smart_encoding को true पर सेट करें:

await bird.sms.send({
  to: "+31612345678",
  from: "Bird",
  text: "Your order shipped, track it here…",
  category: "transactional",
  options: { smart_encoding: true },
});

Go और PHP SDK इसे nullable फ़ील्ड के रूप में लेते हैं, इसलिए इसे सेट न करने पर false नहीं भेजा जाता, बल्कि Bird का डिफ़ॉल्ट लागू होता है।

स्मार्ट एन्कोडिंग हर संदेश के लिए अलग से सेट करें। Bird पूरे खाते या हर प्रेषक के लिए कोई सेटिंग नहीं देता।

Bird कब UCS-2 बनाए रखता है

बदलाव तभी लागू होता है जब उससे पूरा संदेश GSM-7 में बदल जाए। अगर कोई भी अक्षर GSM-7 से बाहर रह जाता है, तो Bird संदेश को ठीक वैसे ही भेजता है जैसा वह दिया गया था।

GSM-7 से बाहर का एक भी इमोजी, CJK अक्षर या मात्रा-चिह्न वाला अक्षर पूरे संदेश को UCS-2 में ही रखता है:

कोड उदाहरण
{ "text": "Hoe gaat het vandaag? á “" }

“ बदला जा सकता है, लेकिन á GSM-7 में नहीं है और तालिका में उसकी कोई प्रविष्टि नहीं है, इसलिए यह बॉडी बिना बदले UCS-2 के रूप में भेजी जाती है। GSM-7 में à, ä, å, é, è, ì, ò, ù, ö, ñ, ü शामिल हैं, लेकिन á, í या ú नहीं।

उच्चारण चिह्न वाले अक्षर जानबूझकर तालिका में नहीं रखे गए हैं। á को a में बदलने से शब्द का अनुमानित रूप नहीं बनता, बल्कि शब्द ही बदल जाता है। स्पेनिश या पुर्तगाली में लिखने वाले प्रेषक के लिए यह सौदा गलत है।

नॉर्मलाइज़ेशन संयोजी उच्चारण चिह्नों पर असर डालता है। NFD टेक्स्ट में विघटित ê उच्चारण चिह्न को अलग संयोजी चिह्न के रूप में रखता है, इसलिए स्मार्ट एन्कोडिंग उसे e^ में बदल देता है। पूर्व-संयोजित ê नहीं बदलता और UCS-2 का उपयोग करता है।

यह क्या नहीं करता

  • यह टेक्स्ट को कभी नहीं काटता। 12-सेगमेंट सीमा से बड़ी बॉडी 422 के साथ अस्वीकार कर दी जाती है। सीमा बदलाव के बाद मापी जाती है, इसलिए इसे चालू करने से बहुत बड़ी बॉडी सीमा के भीतर आ सकती है।
  • यह उस बॉडी को नहीं छूता जो पहले से GSM-7 में है, क्योंकि उसमें बचाने के लिए कोई सेगमेंट नहीं है।
  • यह सेगमेंट की संख्या के अलावा आपके बिल में कुछ नहीं बदलता: संख्या भेजी गई बॉडी से गिनी जाती है।

क्या हुआ, यह कैसे देखें

संदेश दोनों बातें बताता है। text भेजी गई बॉडी है, और options.smart_encoding बताता है कि कौन-सी सेटिंग लागू हुई:

कोड उदाहरण
{
  "text": "Your order shipped - track it here...",
  "segments": { "count": 1, "encoding": "GSM_7BIT", "characters": 36 },
  "options": { "smart_encoding": true }
}

अगर आपने किसी भेजे गए संदेश के लिए इसे चालू किया था और encoding का मान UCS2 है, तो इसका मतलब है कि बॉडी को GSM-7 में नहीं लाया जा सका। भेजने से पहले किसी खास संदेश का नतीजा देखने के लिए उसका टेक्स्ट SMS सेगमेंट कैलकुलेटर में पेस्ट करें।

पूरी बदलाव तालिका

बदलाव तालिका में वे सभी अक्षर हैं जिन्हें स्मार्ट एन्कोडिंग चालू होने पर बदला जाता है। बाकी अक्षर, जिनमें पहले से GSM-7 में मौजूद अक्षर भी शामिल हैं, नहीं बदलते।

प्रतिस्थापनबदले जाने वाले वर्ण
स्पेसU+00A0, U+2000, U+2001, U+2002, U+2003, U+2004, U+2005, U+2006, U+2007, U+2008, U+2009, U+200A, U+202F, U+205F, U+3000
!ǃ U+01C3, ︕ U+FE15, ﹗ U+FE57, ! U+FF01
!!‼ U+203C
"« U+00AB, » U+00BB, ʺ U+02BA, ˮ U+02EE, “ U+201C, ” U+201D, „ U+201E, ‟ U+201F, ❝ U+275D, ❞ U+275E, 〝 U+301D, 〞 U+301E, " U+FF02
#﹟ U+FE5F, # U+FF03
$﹩ U+FE69, $ U+FF04
%﹪ U+FE6A, % U+FF05
&﹠ U+FE60, & U+FF06
'` U+0060, ´ U+00B4, ʹ U+02B9, ʻ U+02BB, ʼ U+02BC, ʽ U+02BD, ˈ U+02C8, ˊ U+02CA, ˋ U+02CB, U+0313, U+0314, ‘ U+2018, ’ U+2019, ‛ U+201B, ❛ U+275B, ❜ U+275C, ︐ U+FE10, ︑ U+FE11, ' U+FF07
(❨ U+2768, ❪ U+276A, ⟮ U+27EE, ⦅ U+2985, ﹙ U+FE59, ( U+FF08
)❩ U+2769, ❫ U+276B, ⟯ U+27EF, ⦆ U+2986, ﹚ U+FE5A, ) U+FF09
*⁎ U+204E, ∗ U+2217, ⊛ U+229B, ✢ U+2722, ✣ U+2723, ✤ U+2724, ✥ U+2725, ✱ U+2731, ✲ U+2732, ✳ U+2733, ✺ U+273A, ✻ U+273B, ✼ U+273C, ✽ U+273D, ❃ U+2743, ❉ U+2749, ❊ U+274A, ❋ U+274B, ⧆ U+29C6, ﹡ U+FE61, * U+FF0A
+˖ U+02D6, ﹢ U+FE62, + U+FF0B
,U+0326, ‚ U+201A, 、 U+3001, ﹐ U+FE50, ﹑ U+FE51, , U+FF0C, 、 U+FF64
-‐ U+2010, – U+2013, — U+2014, ― U+2015, • U+2022, ⁃ U+2043, ⎼ U+23BC, ⎽ U+23BD, ﹣ U+FE63, - U+FF0D
.。 U+3002, ﹒ U+FE52, . U+FF0E, 。 U+FF61
...… U+2026
/÷ U+00F7, U+0337, U+0338, ⁄ U+2044, ∕ U+2215, ⧸ U+29F8, / U+FF0F
00 U+FF10
11 U+FF11
1/2½ U+00BD
1/4¼ U+00BC
22 U+FF12
33 U+FF13
3/4¾ U+00BE
44 U+FF14
55 U+FF15
66 U+FF16
77 U+FF17
88 U+FF18
99 U+FF19
:ː U+02D0, ˸ U+02F8, ⦂ U+2982, ꞉ U+A789, ︓ U+FE13, : U+FF1A
;⁏ U+204F, ︔ U+FE14, ﹔ U+FE54, ; U+FF1B
<‹ U+2039, ﹤ U+FE64, < U+FF1C
=U+0347, ꞊ U+A78A, ﹦ U+FE66, = U+FF1D
>› U+203A, ﹥ U+FE65, > U+FF1E
?︖ U+FE16, ﹖ U+FE56, ? U+FF1F
@﹫ U+FE6B, @ U+FF20
Aᴀ U+1D00, A U+FF21
Bʙ U+0299, B U+FF22
Cᴄ U+1D04, C U+FF23
Dᴅ U+1D05, D U+FF24
Eᴇ U+1D07, E U+FF25
Fꜰ U+A730, F U+FF26
Gɢ U+0262, G U+FF27
Hʜ U+029C, H U+FF28
Iɪ U+026A, I U+FF29
Jᴊ U+1D0A, J U+FF2A
Kᴋ U+1D0B, K U+FF2B
Lʟ U+029F, L U+FF2C
Mᴍ U+1D0D, M U+FF2D
Nɴ U+0274, N U+FF2E
Oᴏ U+1D0F, O U+FF2F
Pᴘ U+1D18, P U+FF30
QQ U+FF31
Rʀ U+0280, R U+FF32
Sꜱ U+A731, S U+FF33
Tᴛ U+1D1B, T U+FF34
Uᴜ U+1D1C, U U+FF35
Vᴠ U+1D20, V U+FF36
Wᴡ U+1D21, W U+FF37
XX U+FF38
Yʏ U+028F, Y U+FF39
Zᴢ U+1D22, Z U+FF3A
[[ U+FF3B
\U+20E5, ⧵ U+29F5, ⧹ U+29F9, ﹨ U+FE68, \ U+FF3C
]] U+FF3D
^ˆ U+02C6, U+0302, U+1DCD, ^ U+FF3E
_U+0332, ‗ U+2017, _ U+FF3F
{❴ U+2774, ﹛ U+FE5B, { U+FF5B
|U+20D2, U+20D3, ∣ U+2223, ⎜ U+239C, ⎟ U+239F, ⎸ U+23B8, ⎹ U+23B9, ⏐ U+23D0, | U+FF5C
}❵ U+2775, ﹜ U+FE5C, } U+FF5D
~˜ U+02DC, ˷ U+02F7, U+0303, U+0330, U+0334, ∼ U+223C, ~ U+FF5E
हटा दिए जाते हैंU+200B, U+2028, U+2029, U+2060, U+FEFF

स्पेस के सभी प्रकार एक ही स्पेस (U+0020) में बदल जाते हैं। अंतिम पंक्ति में शून्य-चौड़ाई और फ़ॉर्मेटिंग वर्ण हैं, जिन्हें बदला नहीं जाता बल्कि हटा दिया जाता है।

आगे क्या करें

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।