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 },
});client.sms.send(
to="+31612345678",
from_="Bird",
text="Your order shipped, track it here…",
category="transactional",
smart_encoding=True,
)_, err := client.Sms.Send(context.Background(), bird.SmsSendParams{
To: "+31612345678",
From: "Bird",
Text: "Your order shipped, track it here…",
Category: bird.SMSCategoryTransactional,
SmartEncoding: bird.Bool(true),
})$bird->sms->send(
to: '+31612345678',
from: 'Bird',
text: 'Your order shipped, track it here…',
category: 'transactional',
smartEncoding: true,
);bird sms send \
--category transactional \
--from Bird \
--smart-encoding=true \
--text 'Your order shipped, track it here…' \
--to +31612345678curl -X POST https://eu1.platform.bird.com/v1/sms/messages \
-H "Authorization: Bearer bk_eu1_..." \
-H "Content-Type: application/json" \
-d '{
"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 |
0 | 0 U+FF10 |
1 | 1 U+FF11 |
1/2 | ½ U+00BD |
1/4 | ¼ U+00BC |
2 | 2 U+FF12 |
3 | 3 U+FF13 |
3/4 | ¾ U+00BE |
4 | 4 U+FF14 |
5 | 5 U+FF15 |
6 | 6 U+FF16 |
7 | 7 U+FF17 |
8 | 8 U+FF18 |
9 | 9 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 |
Q | Q 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 |
X | X 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) में बदल जाते हैं। अंतिम पंक्ति में शून्य-चौड़ाई और फ़ॉर्मेटिंग वर्ण हैं, जिन्हें बदला नहीं जाता बल्कि हटा दिया जाता है।
आगे क्या करें
- वर्ण सीमाएँ: GSM-7, UCS-2 और सेगमेंट सीमाएँ देखें।
- SMS भेजना: किसी संदेश को भेजते समय स्मार्ट एन्कोडिंग चालू करें।
- SMS सेगमेंट कैलकुलेटर: किसी संदेश को भेजने से पहले उसकी जाँच करें।
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।