Når man bygger automatiserte systemer eller sender kundevarsler, blir mange bedriftseiere og utviklere sjokkert over å oppdage at de månedlige SMS-regningene er dobbelt så høye som forventet. Denne omfattende guiden inneholder en tabell over hvor mange tegn spesialtegn krever for å sende SMS, slik at du lettere forstår hvordan skjulte endringer i kodingen kan øke meldingskostnadene dine drastisk.
Hvorfor spesialtegn endrer lengden og kostnaden på SMS
I telekomstandarder blir ikke tekstmeldinger fakturert etter det faktiske antallet ord du skriver, men etter "segmenter". Et standard SMS-segment kodes med tegnsettet GSM-7, som tillater opptil 160 tegn per melding. Men i det øyeblikket du introduserer et enkelt tegn utenfor dette standardsettet – som en emoji, en kyrillisk bokstav eller til og med et stilig "smart sitattegn" kopiert fra Microsoft Word – endres hele meldingens koding til UCS-2 (Unicode).
At SMS-meldinger er begrenset til 160 tegn, selv når de inneholder spesialtegn og emojier under UCS-2-koding, er en vanlig misforståelse. I realiteten faller den maksimale tegngrensen per segment umiddelbart fra 160 tegn til bare 70 tegn så snart et enkelt ikke-GSM-tegn oppdages. Hvis meldingen din er 71 tegn lang og inneholder én emoji, vil den bli delt opp og fakturert som to separate SMS-segmenter av tradisjonelle API-leverandører som Twilio eller Plivo.
Å forstå hvilke spesialtegn som vanligvis påvirker meldinger er avgjørende for å holde driftskostnadene nede, spesielt hvis du driver en lokal tjenestebedrift som en klinikk, salong eller et verksted som sender avtalepåminnelser til kundene dine.
Forklaring av GSM-7 vs. UCS-2-koding
GSM-7 er en 7-bits tegnkodingsstandard utviklet spesifikt for SMS. Den inneholder de fleste latinske tegn, tall og grunnleggende tegnsetting. UCS-2 is a 16-bit encoding standard that can represent almost any character in any language, including emojis, but it requires double the data per character. Dette dataoverskuddet er grunnen til at mobilnettene reduserer segmentkapasiteten til 70 tegn når UCS-2 utløses.
Den ultimate tabellen over spesialtegn i SMS
Nedenfor finner du en tabell over hvor mange tegn spesialtegn krever for å sende SMS. Denne tabellen viser standard GSM-7-tegn, utvidede GSM-7-tegn (som krever 2 tegnplasser innenfor grensen på 160) og UCS-2-tegn som tvinger frem den strenge grensen på 70 tegn.
| Tegnkategori | Eksempel på tegn | Bits per tegn | Tegnvekt i SMS | Maks segmentgrense |
|---|---|---|---|---|
| GSM-7 Basic | A-Z, a-z, 0-9, mellomrom, enkel tegnsetting (., !, ?, @, $, osv.) | 7 bits | 1 tegn | 160 tegn |
| GSM-7 Extended | ^, {, }, [, ], ~, |, \, € | 14 bits | 2 tegn | 160 tegn (hvert utvidet tegn teller som 2) |
| UCS-2 (Unicode) | á, í, ó, ñ, ’ (smart sitattegn), emojier (😀), kyrillisk, arabisk | 16 bits | Tvinger hele meldingen til Unicode | 70 tegn |
Som vist i tabellen, vil bruk av et utvidet GSM-7-tegn som en krøllparentes "{" eller en omvendt skråstrek "\" ikke tvinge frem Unicode, men det teller som to tegn mot grensen på 160 tegn. Men bruk av et ikke-GSM-tegn som "á" (ofte brukt i spanske sms y caracteres especiales-konfigurasjoner) eller et buet apostroftegn "’" vil umiddelbart redusere meldingssegmentgrensen til 70 tegn.
Hvordan spesialtegn påvirker SMS-kostnadene dine
For å forstå los caracteres especiales que impacto tienen en el coste de los sms (hvilken innvirkning spesialtegn har på kostnaden for SMS), la oss se på et praktisk eksempel. Tenk deg at du driver en tannlegeklinikk og sender følgende avtalepåminnelse:
"Hei John, din avtale er satt opp i morgen kl. 15.00. Vennligst svar for å bekrefte, eller ring oss hvis du må endre timen! Él."
Denne meldingen er 123 tegn lang. Hvis du bruker den vanlige "E"-en i stedet for den aksentuerte "É"-en, sendes meldingen i GSM-7. Den passer fint innenfor grensen på 160 tegn og koster deg nøyaktig 1 SMS-segment.
Men på grunn av den aksentuerte "É"-en blir meldingen tvunget over i UCS-2. Segmentgrensen er nå 70 tegn. Meldingen din på 123 tegn blir delt opp i to segmenter (det første segmentet er på 67 tegn, det andre på 56 tegn på grunn av segmenteringshoder). Tradisjonelle API-gatewayer vil fakturere deg for 2 SMS-meldinger i stedet for 1.
Hvis du bruker tradisjonelle leverandører, kan denne segmenteringen doble eller triple den månedlige fakturaen din. Dette er grunnen til at mange bedrifter ser etter et Twilio-alternativ eller rådfører seg med en guide for billigste SMS-API for å unngå vilkårlige segmentbaserte gebyrer.
Hvordan unngår jeg spesialtegn i SMS?
Hvis du vil holde meldingene dine innenfor grensen på 160 tegn og unngå uventede kostnader, må du aktivt rense (sanitize) SMS-innholdet ditt. Her er konkrete strategier for hvordan unngå spesialtegn i SMS:
- Rens kopiert tekst: Mange CRM-maler inneholder "smart" tegnsetting. For eksempel kan en kopiert apostrof (’) eller et komma fra et riktekst-redigeringsprogram hindre problemfri levering eller utløse Unicode. Som et reelt eksempel gir noen interne bedriftssystemer en kort advarsel til rådgivere: "utgående sms spesialtegn vennligst vær oppmerksom på at alle utgående sms som sendes må være 250 tegn eller færre. hvis meldingen din har blitt kopiert og limt inn fra en lagret mal og inneholder et komma (,) eller en apostrof ('), vennligst fjern spesialtegnet og skriv det inn på nytt før du sender". Å erstatte smarte sitattegn med standard rette apostrofer (') sikrer GSM-7-kompatibilitet.
- Erstatt ikke-GSM-tegn programmatisk: Hvis systemet ditt genererer SMS dynamisk, kan du implementere en translitterasjonsfunksjon for å bytte ut tegn som "á" til "a", "é" til "e" og "“" til """.
- Håndter plattformspesifikke begrensninger: Hvis du utvikler på low-code-plattformer for bedrifter, må du være oppmerksom på hvordan de håndterer koding, for eksempel ved håndtering av special characters in gsm outsystems-integrasjoner, der tekstvariabler automatisk kan konvertere standard tegnsetting til Unicode-ekvivalenter under JSON-serialisering.
Python-kodesnutt for å rense SMS-tekst
Her er en enkel Python-funksjon for å fjerne spesialtegn som SMS ikke gjenkjenner, eller som ville tvunget frem kostbar UCS-2-koding:
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."
Slipp kodingsbekymringer med MySMSGate
For lokale tjenestebedrifter, skoler og klinikker er det en unødvendig hodepine å bekymre seg for tegnkoding, segmentgrenser og komplekse prisstrukturer. Det er her valget mellom en tradisjonell SMS-gateway vs. SMS-API blir avgjørende.
MySMSGate løser dette problemet fullstendig. I stedet for å rute meldingene dine gjennom dyre mobilnett med streng, segment-multiplisert prissetting, forvandler MySMSGate din egen Android-telefon og ditt SIM-kort til en SMS-gateway.
Slik endrer MySMSGate spillereglene for kostnadsbevisste bedrifter:
- Fastpris: Vi tar en fast pris på $0,02 per sendte melding, uavhengig av lengde, tegnkoding eller segmenter. Du slipper å bekymre deg for om en emoji eller et aksenttegn vil doble regningen din.
- Bruk ditt eget nummer: Meldinger sendes direkte fra SIM-kortet i din Android-telefon. Kundene dine ser et lokalt, gjenkjennelig mobilnummer, noe som øker svar- og åpningsraten.
- Ingen kompliserte registreringer: Unngå komplekse 10DLC-registreringer, operatørgodkjenninger og månedlige merkevaregebyrer knyttet til tradisjonelle API-er som Twilio.
- Støtte for Dual SIM og flere enheter: Administrer flere telefoner og SIM-kort fra ett enkelt dashbord, og velg nøyaktig hvilken linje du vil sende fra for hver kundesamtale.
Ofte stilte spørsmål
Gå gjennom disse vanlige spørsmålene om SMS-tegnkoding, spesialtegn og meldingsgrenser.
Hvilke spesialtegn reduserer SMS-grensen til 70 tegn?
Alle tegn som ikke er inkludert i det vanlige GSM-7-tegnsettet, vil tvinge frem UCS-2-koding, noe som reduserer grensen til 70 tegn. Dette inkluderer emojier, ikke-latinske alfabeter (kyrillisk, arabisk, gresk, hebraisk) samt visse aksentuerte bokstaver eller stiliserte tegnsettingstegn (som buede, smarte sitattegn).
Teller mellomrom som tegn i en SMS?
Ja, hvert mellomrom teller som ett enkelt tegn i både GSM-7- og UCS-2-kodingsstandardene.
Hvorfor belaster SMS-plattformen min meg for flere meldinger når jeg bare sendte én?
Hvis meldingen din overskred 160 tegn (i GSM-7) eller 70 tegn (i UCS-2), delte operatøren meldingen opp i flere segmenter. Tradisjonelle API-er fakturerer deg per segment, noe som betyr at en enkelt lang melding fort kan koste deg 2x eller 3x av basisprisen.
Hvordan kan jeg teste om SMS-meldingen min inneholder spesialtegn?
Du kan bruke segment-kalkulatorer for SMS på nettet, eller kjøre et enkelt renseskript i backend-systemet ditt for å oppdage om teksten utløser UCS-2 Unicode-koding før du sender den til API-leverandøren din.
Comments (0)
Be the first to comment!