Avtomatlashtirilgan tizimlarni yaratishda yoki mijozlarga bildirishnomalar yuborishda koʻplab biznes egalari va dasturchilar oylik SMS hisob-kitoblari kutilganidan ikki baravar yuqori ekanligini koʻrib hayratda qolishadi. Ushbu batafsil qoʻllanmada SMS yuborishda maxsus belgilar necha belgiga teng ekanligini koʻrsatuvchi jadval taqdim etiladi. Bu sizga yashirin kodlash oʻzgarishlari xabarlar yuborish xarajatlarini qanday qibly keskin oshirib yuborishini tushunishga yordan beradi.

Nima uchun maxsus belgilar SMS uzunligi va narxiga taʼsir qiladi

Telekommunikatsiya standartlarida matnli xabarlar siz yozgan soʻzlarning umumiy soniga qarab emas, balki "segmentlar" boʻyicha hisoblanadi. Standart SMS segmenti GSM-7 belgilar toʻplami yordamida kodlanadi va u har bir xabar uchun 160 tagacha belgiga ruxsat beradi. Biroq, ushbu standart toʻplamdan tashqaridagi bitta belgini — masalan, emoji, kirill alifbosi harfi yoki hatto Microsoft Word dasturidan nusxalangan chiroyli "aqlli qoʻshtirnoq"ni kiritsangiz, butun xabar kodlanishi UCS-2 (Unicode) formatiga oʻtadi.

UCS-2 kodlashida sms messages are limited to 160 characters, even when they include special characters and emojis degan tushuncha keng tarqalgan notoʻgʻri tasavvurdir. Aslida, bitta GSM-7 ga kirmaydigan belgi aniqlanishi bilanoq, har bir segment uchun maksimal belgi chegarasi bir zumda 160 tadan atigi 70 tagacha tushib ketadi. Agar xabaringiz 71 belgidan iborat boʻlsa va unda bitta emoji boʻlsa, u anʼanaviy API provayderlari (masalan, Twilio yoki Plivo) tomonidan ikkita alohida SMS segmentiga boʻlinadi va tegishli ravishda hisob-kitob qilinadi.

Xarajatlarni past darajada saqlash uchun what special carachters usually affect messagesni tushunish juda muhimdir. Ayniqsa, agar siz mijozlarga uchrashuv eslatmalarini yuboradigan klinika, salon yoki taʼmirlash ustaxonasi kabi mahalliy xizmat koʻrsatish biznesini yuritsangiz.

GSM-7 va UCS-2 kodlash turlarining tushuntirilishi

GSM-7 — bu maxsus SMS uchun ishlab chiqilgan 7-bitli belgilarni kodlash standarti. U koʻpgina lotin belgilari, raqamlar va asosiy tinish belgilarini oʻz ichiga oladi. UCS-2 esa har qanday tildagi deyarli har qanday belgini, jumladan emojilarni ham ifodalay oladigan 16-bitli kodlash standarti boʻlib, u har bir belgi uchun ikki baravar koʻp maʼlumot talab qiladi. Ushbu maʼlumot hajmining kattaligi sababli, UCS-2 ishga tushganda aloqa operatorlari segment hajmini 70 belgiga tushiradi.

SMS maxsus belgilarining toʻliq jadvali

Quyida a table with the number of chars that special char need to send sms keltirilgan. Ushbu jadvalda standart GSM-7 belgilari, GSM-7 Extended (kengaytirilgan) belgilari (ular 160 belgilik cheklov ichida 2 ta belgi joyini egallaydi) va qatʼiy 70 belgilik cheklovni majburlaydigan UCS-2 belgilari koʻrsatilgan.

Belgi toifasiBelgilarga misollarHar bir belgi uchun bitlarBelgining SMS'dagi vazniMaksimal segment chegarasi
GSM-7 BasicA-Z, a-z, 0-9, boʻshliqlar, oddiy tinish belgilari (., !, ?, @, $, va h.k.)7 bits1 ta belgi160 ta belgi
GSM-7 Extended^, {, }, [, ], ~, |, \, €14 bits2 ta belgi160 ta belgi (har bir kengaytirilgan belgi 2 ta deb hisoblanadi)
UCS-2 (Unicode)á, í, ó, ñ, ’ (aqlli qoʻshtirnoq), emojilar (😀), kirill, arab alifbosi16 bitsButun xabarni Unicode formatiga oʻtkazadi70 ta belgi

Jadvalda koʻrsatilganidek, figurali qavs "{" yoki teskari slesh "\" kabi kengaytirilgan GSM-7 belgisidan foydalanish Unicode formatini majburlamaydi, lekin u 160 belgilik cheklovingizda ikkita belgi sifatida hisoblanadi. Biroq, "á" kabi GSM-7 boʻlmagan belgilardan (koʻpincha ispan tilidagi sms y caracteres especiales sozlamalarida qoʻllaniladi) yoki jingalak apostrof "’" belgisidan foydalanish xabar segmentining chegarasini darhol 70 belgiga tushiradi.

Maxsus belgilar SMS xarajatlariga qanday taʼsir qiladi

Maxsus belgilarning SMS narxiga taʼsirini (los caracteres especiales que impacto tienen en el coste de los sms) tushunish uchun amaliy misolga qaraylik. Tasavvur qiling, siz stomatologiya klinikasini boshqarasiz va quyidagi uchrashuv eslatmasini yuborasiz:

"Hi John, your appointment is scheduled for tomorrow at 3:00 PM. Please reply to confirm or call us if you need to reschedule! Él"

Ushbu xabar 123 belgidan iborat. Agar urgʻuli "É" oʻrniga standart "E" belgisidan foydalansangiz, xabar GSM-7 formatida yuboriladi. U 160 belgilik cheklovga bemalol joylashadi va sizga aniq 1 ta SMS segmenti qiymatida tushadi.

Biroq, urgʻuli "É" belgisi tufayli xabar majburan UCS-2 formatiga oʻtadi. Endi segment chegarasi 70 belgini tashkil etadi. Sizning 123 belgilik xabaringiz ikkita segmentga boʻlinadi (segmentatsiya sarlavhalari tufayli birinchi segment 67 belgi, ikkinchisi esa 56 belgi boʻladi). Anʼanaviy API shlyuzlari sizga 1 ta oʻrniga 2 ta SMS uchun hisob yozadi.

Agar siz anʼanaviy provayderlardan foydalanayotgan boʻlsangiz, bunday segmentatsiya oylik hisob-fakturangizni ikki yoki uch baravarga oshirishi mumkin. Shuning uchun koʻplab korxonalar asossiz segmentga asoslangan qoʻshimcha toʻlovlardan qochish uchun Twilio muqobilini qidiradilar yoki eng arzon SMS API boʻyicha qoʻllanma bilan maslahatlashadilar.

SMS-da maxsus belgilardan qanday qochish kerak?Agar xabarlaringizni 160 belgilik cheklov doirasida saqlamoqchi boʻlsangiz va kutilmagan xarajatlarning oldini olmoqchi boʻlsangiz, SMS matnlarini faol ravishda tozalashingiz kerak. Quyida how do i avoid special characters in sms boʻyicha amaliy strategiyalar keltirilgan:

  1. Nusxalangan matnni tozalang: Koʻpgina CRM shablonlarida "aqlli" tinish belgilari mavjud. Masalan, boy matn muharriridan nusxalangan apostrof (’) yoki vergul xabarning toʻgʻri yetkazilishiga xalaqit berishi yoki Unicode'ni ishga tushirishi mumkin. Haqiqiy misol sifatida, baʼzi ichki korporativ tizimlar maslahatchilarga qisqacha ogohlantirish beradi: "chiquvchi SMS maxsus belgilari: iltimos, yuborilgan har qanday chiquvchi SMS 250 belgi yoki undan kam boʻlishi kerakligini yodda tuting. agar xabaringiz saqlangan shablondan nusxalangan boʻlsa va unda vergul (,) yoki apostrof (') boʻlsa, iltimos, maxsus belgini oʻchirib tashlang va yuborishdan oldin uni qayta kiriting". Aqlli qoʻshtirnoqlarni standart toʻgʻri qoʻshtirnoqlar (') bilan almashtirish GSM-7 muvofiqligini taʼminlaydi.
  2. GSM-7 boʻlmagan belgilarni dasturiy ravishda almashtiring: Agar tizimingiz SMS-larni dinamik ravishda yaratsa, "á" ni "a" ga, "é" ni "e" ga va "“" ni """ ga almashtirish uchun transliteratsiya funksiyasini joriy qiling.
  3. Platformaga xos cheklovlarni boshqaring: Agar siz korporativ low-code platformalarida ishlayotgan boʻlsangiz, ularning kodlashni qanday boshqarishiga eʼtibor bering, masalan, special characters in gsm outsystems integratsiyalarida matn oʻzgaruvchilari JSON seriyalash paytida standart tinish belgilarini avtomatik ravishda Unicode ekvivalentlariga oʻzgartirishi mumkin.

SMS matnini tozalash uchun Python kodi namunasi

Quyida SMS tanimaydigan yoki qimmat UCS-2 kodlashini majburlaydigan special characters that sms doesn't recognize olib tashlash uchun oddiy Python funksiyasi keltirilgan:

import unicodedata

def sanitize_for_gsm7(text):
    # Map common smart punctuation to GSM-7 equivalents
    replacements = {
        '\u2018': "'", '\u2019': "'", # Smart single quotes
        '\u201c': '"', '\u201d': '"', # Smart double quotes
        '\u2013': '-', '\u2014': '-', # En and em dashes
        '\u20ac': 'EUR'               # Replace Euro sign if needed
    }
    for unicode_char, gsm_char in replacements.items():
        text = text.replace(unicode_char, gsm_char)
    
    # Normalize accents (e.g., é to e)
    normalized = unicodedata.normalize('NFD', text)
    gsm7_text = "".join([c for c in normalized if not unicodedata.combining(c)])
    return gsm7_text

message = "Hello! Your appointment is confirmed for tomorrow é."
print(sanitize_for_gsm7(message))
# Output: "Hello! Your appointment is confirmed for tomorrow e."

MySMSGate yordamida kodlash tashvishlaridan xalos boʻling

Mahalliy xizmat koʻrsatish korxonalari, maktablar va klinikalar uchun belgilarni kodlash, segment cheklovlari va murakkab hisob-kitob tizimlari haqida qaygʻurish ortiqcha bosh ogʻrigʻidir. Aynan shu yerda anʼanaviy SMS gateway vs SMS API oʻrtasida tanlov qilish juda muhim ahamiyat kasb etadi.

MySMSGate ushbu muammoni toʻliq hal qiladi. Xabarlaringizni qatʼiy segmentli tariflarga ega qimmat aloqa operatorlari tarmoqlari orqali yuborish oʻrniga, MySMSGate shaxsiy Android telefoningiz va SIM-kartangizni SMS shlyuziga aylantiradi.

MySMSGate xarajatlarni tejaydigan korxonalar uchun oʻyin qoidalarini qanday oʻzgartirishi quyida keltirilgan:

  • Ruxsat etilgan tarif: Biz xabarning uzunligi, kodlanishi yoki segmentlaridan qatʼi nazar, yuborilgan har bir xabar uchun qatʼiy $0.02 undiramiz. Emojilar yoki urgʻuli belgilar hisobingizni ikki baravar oshirib yuborishi haqida qaygʻurishingiz shart emas.
  • Oʻz raqamingizdan foydalaning: Xabarlar toʻgʻridan-toʻgʻri Android telefoningizning SIM-kartasidan yuboriladi. Mijozlaringiz mahalliy va taniqli mobil raqamni koʻrishadi, bu esa javob berish va xabarlarni ochish koʻrsatkichlarini oshiradi.
  • Murakkab roʻyxatdan oʻtishlarsiz: Twilio kabi anʼanaviy API'lar bilan bogʻliq murakkab 10DLC roʻyxatdan oʻtishlari, operator ruxsatnomalari va oylik brend toʻlovlaridan qoching.
  • Dual SIM va bir nechta qurilmalarni qoʻllab-quvvatlash: Bir nechta telefon va SIM-kartalarni bitta boshqaruv panelidan boshqaring va har bir mijoz bilan suhbat uchun aynan qaysi liniyadan xabar yuborishni tanlang.

Tez-tez soʻraladigan savollar

SMS belgilarini kodlash, maxsus belgilar va xabar cheklovlari boʻyicha tez-tez beriladigan savollar bilan tanishing.

Qaysi maxsus belgilar SMS cheklovini 70 belgigacha qisqartiradi?

Standart GSM-7 belgilar toʻplamiga kirmaydigan har qanday belgi UCS-2 kodlanishini majburlaydi va cheklovni 70 belgigacha qisqartiradi. Bunga emojilar, lotin boʻlmagan alifbolar (kirill, arab, yunon, ivrit) va baʼzi urgʻuli harflar yoki stilizatsiyalangan tinish belgilari (masalan, jingalak aqlli qoʻshtirnoqlar) kiradi.

SMS-da boʻshliqlar (probellar) belgi sifatida hisoblanadimi?

Ha, GSM-7 va UCS-2 kodlash standartlarida har bir boʻshliq (probel) bitta belgi sifatida hisoblanadi.

Nima uchun SMS platformam men faqat bitta xabar yuborgan boʻlsam ham, bir nechta xabar uchun haq oladi?

Agar xabaringiz 160 belgidan (GSM-7 da) yoki 70 belgidan (UCS-2 da) oshib ketgan boʻlsa, operator xabarni bir nechta segmentga boʻlgan. Anʼanaviy API'lar har bir segment uchun alohida haq oladi, yaʼni bitta uzun xabar sizga osongina bazaviy tarifdan 2 yoki 3 baravar qimmatga tushishi mumkin.

How can I test if my SMS message contains special characters?

Matningiz API provayderingizga yuborilishidan oldin UCS-2 Unicode kodlanishini ishga tushirishini aniqlash uchun onlayn SMS segment kalkulyatorlaridan foydalanishingiz yoki dasturingizda oddiy tozalash skriptini ishga tushirishingiz mumkin.