Bij het bouwen van geautomatiseerde systemen of het verzenden van klantmeldingen zijn veel ondernemers en ontwikkelaars geschokt wanneer ze ontdekken dat hun maandelijkse sms-facturen twee keer zo hoog zijn als verwacht. Deze uitgebreide gids bevat een tabel met het aantal tekens dat speciale tekens innemen bij het verzenden van een sms, zodat u begrijpt hoe onzichtbare coderingswijzigingen uw sms-kosten drastisch kunnen verhogen.

Waarom speciale tekens de lengte en kosten van een sms beïnvloeden

In telecomstandaarden worden sms-berichten niet gefactureerd op basis van het exacte aantal woorden dat u schrijft, maar in "segmenten." Een standaard sms-segment wordt gecodeerd met de GSM-7-tekenset, die tot 160 tekens per bericht toestaat. Zodra u echter één enkel teken buiten deze standaardset introduceert—zoals een emoji, een cyrillisch teken of zelfs een fancy "slim aanhalingsteken" dat uit Microsoft Word is gekopieerd—verandert de codering van het hele bericht in UCS-2 (Unicode).

Dat onder UCS-2-codering sms-berichten beperkt zijn tot 160 tekens, zelfs als ze speciale tekens en emoji's bevatten, is een veelvoorkomend misverstand. In werkelijkheid daalt de maximale limiet per segment direct van 160 tekens naar slechts 70 tekens zodra er één enkel niet-GSM-teken wordt gedetecteerd. Als uw bericht 71 tekens lang is en één emoji bevat, wordt het door traditionele API-providers zoals Twilio of Plivo opgesplitst en gefactureerd als twee afzonderlijke sms-segmenten.

Begrijpen welke speciale tekens meestal invloed hebben op berichten is cruciaal om uw operationele kosten laag te houden, vooral als u een lokaal dienstverlenend bedrijf runt, zoals een kliniek, salon of reparatiewerkplaats die afspraakherinneringen naar uw klanten stuurt.

Uitleg over GSM-7 vs. UCS-2 codering

GSM-7 is een 7-bits coderingsstandaard die speciaal is ontworpen voor sms. Het bevat de meeste Latijnse tekens, cijfers en basisleestekens. UCS-2 is een 16-bits coderingsstandaard die vrijwel elk teken in elke taal kan weergeven, inclusief emoji's, maar hiervoor is twee keer zoveel data per teken nodig. Deze data-overhead is de reden waarom telecomnetwerken de segmentcapaciteit verlagen naar 70 tekens zodra UCS-2 wordt geactiveerd.

De ultieme tabel voor speciale SMS-tekens

Hieronder vindt u een tabel met het aantal tekens dat speciale tekens innemen bij het verzenden van een sms. Deze tabel toont standaard GSM-7-tekens, GSM-7 Extended-tekens (die 2 tekenposities vereisen binnen de limiet van 160) en UCS-2-tekens die de strikte limiet van 70 tekens afdwingen.

TekencategorieVoorbeeldtekensBits per tekenTekenbelasting in SMSMaximale segmentlimiet
GSM-7 BasisA-Z, a-z, 0-9, spaties, eenvoudige leestekens (., !, ?, @, $, etc.)7 bits1 teken160 tekens
GSM-7 Uitgebreid^, {, }, [, ], ~, |, \, €14 bits2 tekens160 tekens (elk uitgebreid teken telt als 2)
UCS-2 (Unicode)á, í, ó, ñ, ’ (slim aanhalingsteken), emoji's (😀), Cyrillisch, Arabisch16 bitsDwingt het hele bericht naar Unicode70 tekens

Zoals in de tabel te zien is, dwingt het gebruik van een uitgebreid GSM-7-teken zoals een accolade "{" of een backslash "\" geen Unicode af, maar telt het wel als twee tekens binnen uw limiet van 160 tekens. Het gebruik van een niet-GSM-teken zoals "á" (vaak gebruikt in Spaanse sms y caracteres especiales-configuraties) of een gekruld weglatingsteken "’" verlaagt uw berichtsegmentlimiet echter onmiddellijk naar 70 tekens.

Welke invloed hebben speciale tekens op uw SMS-kosten?

Om te begrijpen los caracteres especiales que impacto tienen en el coste de los sms (de impact die speciale tekens hebben op de kosten van sms), kijken we naar een praktisch voorbeeld. Stel dat u een tandartspraktijk runt en de volgende afspraakherinnering verstuurt:

"Beste John, uw afspraak staat gepland voor morgen om 15:00 uur. Reageer om te bevestigen of bel ons als u wilt verzetten! Él"

Dit bericht is 123 tekens lang. Als u de standaard "E" gebruikt in plaats van de geaccentueerde "É", wordt het bericht in GSM-7 verzonden. Het past dan makkelijk binnen de limiet van 160 tekens, wat u precies 1 sms-segment kost.

Vanwege de geaccentueerde "É" wordt het bericht echter gedwongen in UCS-2 gecodeerd. De segmentlimiet is nu 70 tekens. Uw bericht van 123 tekens wordt opgesplitst in twee segmenten (het eerste segment is 67 tekens, het tweede is 56 tekens vanwege de segmentatieheaders). Traditionele API-gateways zullen u 2 sms-berichten in rekening brengen in plaats van 1.

Als u traditionele providers gebruikt, kan deze segmentatie uw maandelijkse factuur verdubbelen of verdrievoudigen. Dit is de reden waarom veel bedrijven zoeken naar een Twilio-alternatief of een gids voor de goedkoopste SMS API's raadplegen om willekeurige toeslagen op basis van segmenten te vermijden.

Hoe vermijd ik speciale tekens in SMS?

Als u uw berichten binnen de limiet van 160 tekens wilt houden en onverwachte kosten wilt vermijden, moet u de inhoud van uw sms-berichten actief opschonen. Hier zijn direct toepasbare strategieën om speciale tekens in sms te vermijden:

  1. Schoon gekopieerde tekst op: Veel CRM-sjablonen bevatten "slimme" leestekens. Een gekopieerde apostrof (’) of komma uit een rich-text-editor kan bijvoorbeeld een correcte aflevering verhinderen of Unicode triggeren. Een praktijkvoorbeeld: sommige interne bedrijfssystemen geven een korte waarschuwing aan adviseurs: "outbound sms special characters please be aware that any outbound sms sent must be 250 characters or fewer. if your message has been copied & pasted from a saved template and contains a comma (,) or apostrophe ('), please remove the special character and then re-enter it before sending". Het vervangen van slimme aanhalingstekens door standaard rechte aanhalingstekens (') garandeert GSM-7-compatibiliteit.
  2. Vervang niet-GSM-tekens programmatisch: Als uw systeem dynamisch sms-berichten genereert, implementeer dan een transliteratiefunctie om tekens zoals "á" te vervangen door "a", "é" door "e", and "“" to """.
  3. Houd rekening met platformspecifieke beperkingen: Als u ontwikkelt op enterprise low-code platforms, let dan op hoe zij met codering omgaan. Denk hierbij aan het beheren van speciale tekens in GSM OutSystems-integraties, waar tekstvariabelen tijdens JSON-serialisatie automatisch standaardleestekens kunnen converteren naar Unicode-equivalenten.

Python-code snippet om SMS-tekst op te schonen

Hier is een eenvoudige Python-functie om speciale tekens die sms niet herkent of die dure UCS-2-codering zouden afdwingen, te verwijderen:

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."

Geen zorgen meer over codering met MySMSGate

Voor lokale dienstverleners, scholen en klinieken is het maken van zorgen over tekencodering, segmentlimieten en complexe tariefstructuren een onnodige bron van hoofdpijn. Dit is het punt waarop de keuze tussen een traditionele SMS gateway vs SMS API cruciaal wordt.

MySMSGate lost dit probleem volledig op. In plaats van uw berichten via dure telecomnetwerken met strikte segmentgebaseerde tarieven te sturen, verandert MySMSGate uw eigen Android-telefoon en simkaart in een SMS-gateway.

Dit is hoe MySMSGate het spel verandert voor kostenbewuste bedrijven:

  • Vaste tarieven: We rekenen een vast tarief van $0,02 per verzonden bericht, ongeacht de lengte, tekencodering of segmenten. U hoeft zich geen zorgen te maken of een emoji of geaccentueerd teken uw factuur verdubbelt.
  • Gebruik uw eigen nummer: Berichten worden rechtstreeks vanaf de simkaart van uw Android-telefoon verzonden. Uw klanten zien een lokaal, herkenbaar mobiel nummer, wat de respons en open rates verhoogt.
  • Geen complexe registraties: Vermijd de ingewikkelde 10DLC-registraties, netwerkgoedkeuringen en maandelijkse merkkosten die gepaard gaan met traditionele API's zoals Twilio.
  • Dual SIM- en multi-device ondersteuning: Beheer meerdere telefoons en simkaarten vanuit één dashboard en kies precies vanaf welke lijn u verzendt voor elk klantgesprek.

Veelgestelde vragen

Bekijk deze veelgestelde vragen over SMS-tekencodering, speciale tekens en berichtlimieten.

Welke speciale tekens verlagen de SMS-limiet naar 70 tekens?

Elk teken dat niet is opgenomen in de standaard GSM-7-tekenset dwingt UCS-2-codering af, waardoor de limiet wordt verlaagd tot 70 tekens. Dit omvat emoji's, niet-Latijnse alfabetten (Cyrillisch, Arabisch, Grieks, Hebreeuws) en bepaalde geaccentueerde letters of gestileerde leestekens (zoals gekrulde slimme aanhalingstekens).

Tellen spaties mee als tekens in een sms?

Ja, elke spatie telt als één teken in zowel de GSM-7- als de UCS-2-coderingsstandaard.

Waarom brengt mijn SMS-platform meerdere berichten in rekening terwijl ik er maar één heb verzonden?

Als uw bericht langer was dan 160 tekens (in GSM-7) of 70 tekens (in UCS-2), heeft de provider het bericht opgesplitst in meerdere segmenten. Traditionele API's factureren per segment, wat betekent dat een enkel lang bericht u gemakkelijk 2 of 3 keer het basistarief kan kosten.

Hoe kan ik testen of mijn sms-bericht speciale tekens bevat?

U kunt online SMS-segmentcalculators gebruiken of een eenvoudig opschoonscript in uw backend uitvoeren om te detecteren of uw tekst UCS-2 Unicode-codering activeert voordat u deze naar uw API-provider verzendt.