Om du har märkt att dina SMS-kostnader skjuter i höjden eftersom ditt system skickar flera SMS på grund av Unicode, är hur du stoppar detta förmodligen din mest akuta fråga. Ett enda oavsiktligt smart citattecken eller en emoji kan omedelbart förvandla ett billigt standard-SMS till tre separata debiterade segment, vilket dränerar din marknadsförings- och driftsbudget.

Steg 1: Förstå varför Unicode tvingar fram flera SMS-segment

För att stoppa din SMS-gateway från att dela upp enstaka meddelanden i flera debiterade segment måste du först förstå den underliggande tekniska mekaniken bakom SMS-kodning. Traditionella telekommunikationsnätverk använder två huvudsakliga kodningsstandarder för textmeddelanden: GSM-7 och UCS-2 (Unicode).

Under standardkodningen GSM-7 kan ett enskilt SMS-segment innehålla upp till 160 tecken. Denna teckenuppsättning innehåller standardiserade latinska bokstäver (A–Z, a–z), siffror (0–9) och några vanliga skiljetecken. Men så fort ditt meddelande innehåller så mycket som ett enda tecken utanför denna basuppsättning – till exempel ett krökt citattecken (’), en accentuerad bokstav (á, é, ö) eller en emoji – växlar hela meddelandets kodning automatiskt till UCS-2.

När ditt meddelande växlar till UCS-2 Unicode-kodning sjunker teckengränsen per segment från 160 tecken till bara 70 tecken. Om ditt meddelande är 140 tecken långt ryms det enkelt i ett enda GSM-7-segment. Men i UCS-2 kräver samma 140 tecken två separata segment. Traditionella API-leverantörer som Twilio, Vonage och MessageBird debiterar dig per segment, vilket innebär att din kostnad omedelbart fördubblas eller tredubblas för ett enda meddelande.

KodningsstandardMax antal tecken (1 segment)Max antal tecken (Flera segment)Vanliga utlösande tecken
GSM-7160 tecken153 tecken per segmentStandardengelska bokstäver, siffror, grundläggande skiljetecken
UCS-2 (Unicode)70 tecken67 tecken per segmentEmojis, smarta citattecken (“, ”), icke-latinska alfabet, accenter (é, ñ)

Detta beteende förklarar varför din applikation skickar flera SMS på grund av Unicode. För till att lösa detta måste du antingen strikt rensa din indata eller gå över till ett billigt SMS-API som inte straffar dig för att du skickar längre, moderna textmeddelanden.

Steg 2: Ta bort eller ersätt Unicode-tecken i din kod

Det mest omedelbara programmeringsmässiga sättet att stoppa Unicode-uppdelningar är att rensa ditt meddelande innan det skickas till din SMS-gateway. Du kan skriva en hjälpfunktion i din backend för att rensa bort icke-GSM-7-tecken eller ersätta dem med deras närmaste GSM-7-motsvarigheter.

Så här kan du implementera detta i olika programmeringsspråk med hjälp av enkla regex-mönster och regler för strängersättning.

Python-implementering

I Python kan du använda modulen unicodedata för att normalisera dina strängar, ta bort accenter och konvertera smarta citattecken tillbaka till vanliga raka citattecken:

import unicodedata
import re

def clean_for_gsm7(text):
    # Replace common smart quotes and dashes
    replacements = {
        u'\u201c': '"', u'\u201d': '"',
        u'\u2018': "'", u'\u2019': "'",
        u'\u2013': '-', u'\u2014': '-'
    }
    for unicode_char, gsm_char in replacements.items():
        text = text.replace(unicode_char, gsm_char)
    
    # Normalize and strip accents
    normalized = unicodedata.normalize('NFKD', text)
    ascii_text = normalized.encode('ascii', 'ignore').decode('utf-8')
    
    # Remove any remaining non-GSM-7 characters
    gsm7_regex = re.compile(r'[^

 a-zA-Z0-9^{}\\[~]|€$@!"#%&'()*+,-./:;<=>?_]')
    cleaned_text = gsm7_regex.sub('', ascii_text)
    
    return cleaned_text

message = "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! 😊"
print(clean_for_gsm7(message))
# Output: "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! "

Node.js (JavaScript)-implementering

För JavaScript-utvecklare kan du använda ett liknande tillvägagångssätt med reguljära uttryck för att ta bort alla tecken som inte överensstämmer med GSM-7-standarden:

function sanitizeToGSM7(text) {
    const smartReplacements = {
        '[\u201c\u201d]': '"',
        '[\u2018\u2019]': "'",
        '\u2013': '-',
        '\u2014': '-'
    };

    let cleaned = text;
    for (const [pattern, replacement] of Object.entries(smartReplacements)) {
        cleaned = cleaned.replace(new RegExp(pattern, 'g'), replacement);
    }

    // Remove accents
    cleaned = cleaned.normalize('NFD').replace(/[\u0300-\u036f]/g, '');

    // Keep only GSM-7 compatible characters
    const gsm7Pattern = /[^

 a-zA-Z0-9^{}\\[~]|€$@!"#%&'()*+,-.\/:;<=>?_]/g;
    return cleaned.replace(gsm7Pattern, '');
}

const rawMessage = "Your order is ready for pickup! 🚗";
console.log(sanitizeToGSM7(rawMessage)); 
// Output: "Your order is ready for pickup! "

Steg 3: Konvertera smarta citattecken och accenter till GSM-7-motsvarigheter

Ofta smyger sig Unicode-tecken in i dina meddelanden via kopiera-klistra in-åtgärder från ordbehandlare som Microsoft Word eller Google Docs. Dessa program konverterar automatiskt vanliga raka citattecken (' och ") till krökta "smarta" citattecken (, , , ).

För att förhindra att ditt system skickar flera SMS på grund av dessa små förändringar kan du konfigurera en teckenmappningstabell. Detta gör att du kan behålla läsbarheten i din text utan att utlösa UCS-2-gränsen på 70 tecken.

  • Konvertera och till standardapostrof '
  • Konvertera och till standardcitattecken "
  • Konvertera em-streck () och en-streck () till standardbindestreck (-)
  • Konvertera accentuerade tecken som é, á, í till deras oaccentuerade motsvarigheter e, a, i

Genom att mappa dessa tecken explicit bevarar du det professionella utseendet på dina meddelanden samtidigt som du strikt håller dig inom gränsen för ett enda segment. Detta är särskilt användbart för lokala tjänsteföretag som tandläkarkliniker, verkstäder och språkskolor som behöver hålla driftskostnaderna låga när de skickar automatiska bokningspåminnelser.

Steg 4: Byt till en SMS-gateway med fast segmentprissättning

Även om att ta bort Unicode-tecken är en fungerande lösning, tvingar det dig att kompromissa med ditt varumärkes tonläge. År 2026 förväntar sig kunder naturlig kommunikation, vilket ofta inkluderar emojis, lokala accenter och professionell formatering. Att begränsa din kundkommunikation till grundläggande ASCII-tecken bara för att undvika höga telefonräkningar är inte längre nödvändigt.

Traditionella molnaggregatörer som Twilio, Plivo och MessageBird tillämpar strikt debitering per segment eftersom de måste betala operatörsavgifter för varje datapaket. Dessutom kräver användning av dessa äldre plattformar att man navigerar genom komplex A2P SMS-registrering, 10DLC-operatörsgodkännanden och månatliga återkommande avgifter.

Ett alltmer populärt alternativ är å använda en Android-baserad SMS-gateway som MySMSGate. MySMSGate förvandlar dina egna Android-telefoner och SIM-kort till en fullt fungerande enhet för att skicka SMS. Eftersom dina meddelanden skickas direkt via din telefons SIM-kort (vilket vanligtvis inkluderar obegränsade eller kraftigt rabatterade lokala SMS-paket), kringgår du traditionell segmentbaserad debitering helt och hållet.

MySMSGate tar ut en fast avgift på $0.02 per skickat SMS, oavsett om ditt meddelande innehåller Unicode-tecken, emojis eller sträcker sig över flera segment. Det finns inga månatliga prenumerationer, inga kontrakt och inga fördröjningar för operatörsregistrering. Om ett meddelande misslyckas med att levereras återbetalas ditt saldo automatiskt.

Om du letar efter de bästa SMS-API-alternativen för jämförelse av bulk-SMS, tillförlitlighet och leveranshastigheter, så kringgår du hela Unicode-debiteringsproblemet vid källan genom att byta till en Android SMS-gateway.

Steg 5: Konfigurera hantering av SMS från flera telefonnummer

För lokala tjänsteföretag med verksamhet på flera platser kan det snabbt bli komplicerat att hantera meddelandeinfrastrukturen. Om du hanterar flera filialer – som fem tandläkarkliniker eller tre bilverkstäder – behöver du ett system som stöder hantering av SMS från flera telefonnummer från ett enda centraliserat gränssnitt.

Med MySMSGate kan du ansluta ett obegränsat antal Android-enheter till en och samma instrumentpanel. Detta gör att du kan hantera flera nummer sömlöst:

  1. Skapa ditt konto: Registrera dig på MySMSGate för att hämta din API-nyckel.
  2. Installera Android-appen: Ladda ner MySMSGate-appen till dina Android-enheter.
  3. Anslut via QR-kod: Skanna QR-koden som visas på din instrumentpanel med varje telefons kamera. Detta länkar omedelbart enheterna till ditt centrala konto utan att du behöver skriva in komplexa API-nycklar.
  4. Hantera dubbla SIM-kort: Om dina telefoner stöder dubbla SIM-kort kan du välja exakt vilken SIM-kortplats du vill skicka dina meddelanden från, antingen direkt i instrumentpanelen eller via API-anropet.

Denna struktur med flera enheter gör att du kan dirigera utgående aviseringar via lokala nummer som dina kunder redan känner igen, vilket avsevärt förbättrar öppnings- och svarsfrekvensen. Alla inkommande svar vidarebefordras automatiskt till din webbserverade instrumentpanel för Web Conversations, vilket möjliggör tvåvägschatt i realtid direkt från din dator.

Steg 6: Skicka ditt första Unicode-säkra SMS via REST-API:et

Om du är en indie-utvecklare, frilansare eller en teknisk företagare är det otroligt enkelt att integrera MySMSGate i din programvara. Plattformen erbjuder ett rent REST-API med en enda slutpunkt som gör att du kan utlösa SMS-aviseringar med minimal konfiguration.

Här är ett exempel på hur du gör en POST-förfrågan för att skicka ett SMS med cURL. Observera att du kan inkludera emojis och speciella Unicode-tecken utan att oroa dig för ökade segmentkostnader:

curl -X POST https://mysmsgate.net/api/v1/send 
  -H "Authorization: Bearer YOUR_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "to": "+1234567890",
    "message": "Your vehicle is ready for pickup! 🚗 Please reply to this message if you have any questions.",
    "device_id": "your_device_id",
    "sim_slot": 1
  }'

För mer detaljerade språkimplementeringar kan du utforska den officiella MySMSGate API-dokumentationen, som innehåller produktionsklara kodavsnitt för Python, Node.js, PHP, Go och Ruby, tillsammans med färdiga kopplingar för automatiseringsplattformar som Zapier, Make.com och n8n.

Vanliga frågor

Här är svar på de vanligaste frågorna om Unicode-SMS-uppdelning, teckengränser och debiteringsstrukturer.

Varför gör en enda emoji att mitt SMS skickas som flera meddelanden?

Standardtextmeddelanden använder GSM-7-kodning, vilket tillåter upp till 160 tecken per segment. Emojis ingår inte i GSM-7-teckenuppsättningen. När du lägger till en emoji måste operatören byta hela meddelandets kodning till UCS-2 (Unicode), vilket sänker segmentgränsen till 70 tecken. Om ditt meddelande är längre än 70 tecken delas det upp i flera segment, och traditionella API:er debiterar dig för varje segment.

Hur kan jag kontrollera om min text innehåller Unicode innan jag skickar?

Du kan använda SMS-längdräknare online eller köra en enkel regex-sökning i din kod för att upptäcka icke-GSM-7-tecken. Alternativt kan du skriva valideringsskript som flaggar eller tar bort icke-GSM-7-tecken från din databas innan de skickas till en utgående SMS-kö.

Tar MySMSGate extra betalt för Unicode eller meddelanden med flera segment?

Nej. Till skillnad från traditionella API:er som Twilio eller Vonage som debiterar per 160- eller 70-teckenssegment, tar MySMSGate ut en fast avgift på $0.02 per skickat meddelande. Eftersom meddelandet styrs direkt via din Android-telefons SIM-kort betalar du inte per segment, vilket gör att du kan skicka emojis och långa meddelanden utan att behöva oroa dig för dolda avgifter.

Behöver jag operatörs- eller 10DLC-registrering för att använda en Android SMS-gateway?

Nej. Eftersom MySMSGate dirigerar meddelanden via din egen fysiska Android-telefon och ditt SIM-kort, skickas dina meddelanden som vanlig person-till-person-trafik (P2P). Det innebär att du inte behöver genomgå komplex, dyr och tidskrävande A2P 10DLC-registrering eller vänta på operatörsgodkännanden.