Hvis du har lagt merke til at SMS-kostnadene dine skyter i været fordi systemet ditt sender flere SMS-er på grunn av Unicode, er hvordan du stopper dette sannsynligvis det mest presserende spørsmålet du har. Et enkelt uheldig hermetegn eller en emoji kan umiddelbart gjøre en standard, rimelig tekstmelding om til tre separate fakturerte segmenter, noe som tømmer markedsførings- og driftsbudsjettet ditt.
Trinn 1: Forstå hvorfor Unicode tvinger frem flere SMS-segmenter
For å stoppe SMS-gatewayen din fra å dele opp enkeltmeldinger i flere fakturerte segmenter, må du først forstå den underliggende tekniske mekanikken bak SMS-koding. Tradisjonelle telekommunikasjonsnettverk bruker to hovedkodingsstandarder for tekstmeldinger: GSM-7 og UCS-2 (Unicode).
Under standard GSM-7-koding kan et enkelt SMS-segment inneholde opptil 160 tegn. Dette tegnsettet inkluderer standard latinske bokstaver (A-Z, a-z), tall (0-9) og noen få vanlige tegnsettingstegn. Men i det øyeblikket meldingen din inneholder så mye som ett enkelt tegn utenfor dette basissettet – for eksempel et buet hermetegn (’), en bokstav med aksent (á, é, ö) eller en emoji – vil hele meldingskodingen automatisk bytte til UCS-2.
Når meldingen din bytter til UCS-2 Unicode-koding, synker tegngrensen per segment fra 160 tegn til bare 70 tegn. Hvis meldingen din er 140 tegn lang, passer den lett inn i et enkelt GSM-7-segment. Men i UCS-2 krever de samme 140 tegnene to separate segmenter. Tradisjonelle API-leverandører som Twilio, Vonage og MessageBird fakturerer deg per segment, noe som betyr at kostnaden din umiddelbart dobles eller triples for en enkelt melding.
| Kodingsstandard | Maks antall tegn (1 segment) | Maks antall tegn (flere segmenter) | Vanlige triggertegn |
|---|---|---|---|
| GSM-7 | 160 tegn | 153 tegn per segment | Standard engelske bokstaver, tall, grunnleggende tegnsetting |
| UCS-2 (Unicode) | 70 tegn | 67 tegn per segment | Emojier, smarte hermetegn (“, ”), ikke-latinske alfabeter, aksenter (é, ñ) |
Denne oppførselen forklarer hvorfor applikasjonen din sender flere SMS-er på grunn av Unicode. For å løse dette må du enten rense inndataene dine strengt, eller gå over til et rimelig SMS-API som ikke straffer deg for å sende lengre, moderne tekstmeldinger.
Trinn 2: Fjern eller erstatt Unicode-tegn i koden din
Den mest umiddelbare programmatiske måten å stoppe Unicode-splitting på, er å rense meldingsinnholdet før du sender det til SMS-gatewayen din. Du kan skrive en hjelpefunksjon i backend-en din for å fjerne ikke-GSM-7-tegn eller erstatte dem med deres nærmeste GSM-7-ekvivalenter.
Her er hvordan du kan implementere dette i forskjellige programmeringsspråk ved hjelp av enkle regulære uttrykk (regex) og regler for strengerstatning.
Python-implementering
I Python kan du bruke de unicodedata-modulen til å normalisere strengene dine, fjerne aksenter og konvertere smarte hermetegn tilbake til standard rette hermetegn:
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'[^\n\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
For JavaScript-utviklere kan du bruke en lignende tilnærming med regulære uttrykk for å fjerne alle tegn som ikke samsvarer 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 = /[^\n\r 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! "
Trinn 3: Konverter smarte hermetegn og aksenter to GSM-7-ekvivalenter
Ofte sniker Unicode-tegn seg inn i meldingene dine via kopiering og liming fra tekstbehandlingsprogrammer som Microsoft Word eller Google Docs. Disse programmene konverterer automatisk standard rette hermetegn (' og ") til buede "smarte" hermetegn (‘, ’, “, ”).
For å forhindre at systemet ditt sender flere SMS-er på grunn av disse små endringene, kan du sette opp en tabell for tegnmapping. Dette lar deg beholde lesbarheten i teksten din uten å utløse UCS-2-grensen på 70 tegn.
- Konverter ‘ og ’ til standard apostrof '
- Konverter “ og ” til standard hermetegn "
- Konverter tankestrek (—) og bindestrek (―) til standard bindestrek (-)
- Konverter tegn med aksent som é, á, í til deres tilsvarende tegn uten aksent e, a, i
Ved å mappe disse tegnene eksplisitt, bevarer du det profesjonelle utseendet på meldingene dine, samtidig som du holder deg strengt innenfor grensen for ett enkelt segment. Dette er spesielt nyttig for lokale tjenestebedrifter som tannlegekontorer, verksteder og språkskoler som må holde driftskostnadene lave når de sender automatiserte avtaleoppdateringer.
Trinn 4: Bytt til en SMS-gateway med fastpris per segment
Selv om fjerning av Unicode-tegn er en fungerende løsning, tvinger det deg til å gå på akkord med merkevarens stemme. I 2026 forventer kundene naturlig kommunikasjon, som ofte inkluderer emojier, lokale aksenter og profesjonell formatering. Det er ikke lenger nødvendig å begrense kundekommunikasjonen til grunnleggende ASCII-tegn bare for å unngå høye telefonregninger.
Tradisjonelle sky-aggregatører som Twilio, Plivo og MessageBird håndhever streng fakturering per segment fordi de må betale operatøravgifter for hver datapakke. I tillegg krever bruk av disse eldre plattformene at du navigerer i kompleks A2P SMS-registrering, 10DLC-operatørgodkjenninger og månedlige faste avgifter.
Et stadig mer populært alternativ er å bruke en Android-basert SMS-gateway som MySMSGate. MySMSGate gjør dine egne Android-telefoner og SIM-kort om til en fullt funksjonell enhet for sending av SMS. Fordi meldingene dine sendes direkte via telefonens SIM-kort (som vanligvis inkluderer ubegrensede eller sterkt rabatterte lokale SMS-pakker), unngår du tradisjonell segmentbasert fakturering fullstendig.
MySMSGate tar en fastpris på $0,02 per sendt SMS, uavhengig av om meldingen din inneholder Unicode-tegn, emojier eller strekker seg over flere segmenter. Det er ingen månedlige abonnementer, ingen kontrakter og ingen forsinkelser med operatørregistrering. Hvis en melding ikke blir levert, blir saldoen din automatisk refundert.
Hvis du ser etter de beste SMS API-alternativene for sammenligning av bulk-SMS, pålitelighet og leveringsrater, vil overgang til en Android SMS-gateway omgå hele Unicode-faktureringsproblemet ved kilden.
Trinn 5: Sett opp administrasjon av tekstmeldinger fra flere telefonnumre
For lokale tjenestebedrifter som opererer på flere steder, kan det raskt bli komplisert å administrere meldingsinfrastrukturen. Hvis du administrerer flere avdelinger – for eksempel fem tannlegekontorer eller tre bilverksteder – trenger du et system som støtter administrasjon av tekstmeldinger fra flere telefonnumre fra ett enkelt, sentralisert grensesnitt.
Med MySMSGate kan du koble et ubegrenset antall Android-enheter til ett enkelt kontodashbord. Dette lar deg administrere flere numre sømløst:
- Opprett kontoen din: Registrer deg på MySMSGate for å hente API-nøkkelen din.
- Installer Android-appen: Last ned MySMSGate-appen til Android-enhetene dine.
- Koble til via QR-kode: Skann QR-koden som vises på nett-dashbordet ditt med kameraet på hver telefon. Dette kobler umiddelbart enhetene til din sentrale konto uten at du må skrive inn kompliserte API-nøkler.
- Administrer Dual SIM: Hvis telefonene dine støtter Dual SIM, kan du velge nøyaktig hvilket SIM-kortspor du vil sende meldingene dine fra, direkte i dashbordet eller API-kallet.
Denne strukturen med flere enheter lar deg rute utgående varsler gjennom lokale numre som kundene dine allerede kjenner igjen, noe som forbedrer åpnings- og svarprosenten betydelig. Alle innkommende svar videresendes automatisk tilbake til ditt nettbaserte Web Conversations-dashbord, noe som muliggjør toveis chat i sanntid direkte fra datamaskinen din.
Trinn 6: Send din første Unicode-sikre SMS via REST-API
Hvis du er en uavhengig utvikler, frilanser eller en teknisk bedriftseier, er det utrolig enkelt å integrere MySMSGate i programvaren din. Plattformen tilbyr et rent REST-API med ett enkelt endepunkt som lar deg utløse SMS-varsler med minimal konfigurering.
Her er et eksempel på hvordan du gjør en POST-forespørsel for å sende en SMS med cURL. Merk at du kan inkludere emojier og spesielle Unicode-tegn uten å bekymre deg for økte 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
}'For mer detaljerte implementeringer i ulike språk kan du utforske den offisielle MySMSGate API-dokumentasjonen, som inkluderer produksjonsklare kodeeksempler for Python, Node.js, PHP, Go og Ruby, sammen med ferdigbygde integrasjoner for automatiseringsplattformer som Zapier, Make.com og n8n.
Ofte stilte spørsmål
Her er svar på de vanligste spørsmålene angående Unicode SMS-splitting, tegngrenser og faktureringsmodeller.
Hvorfor gjør én emoji at min SMS sendes som flere meldinger?
Standard tekstmeldinger bruker GSM-7-koding, noe som tillater opptil 160 tegn per segment. Emojier er ikke en del av GSM-7-tegnsettet. Når du legger til en emoji, må operatøren bytte hele meldingen til UCS-2 (Unicode)-koding, noe som senker segmentgrensen til 70 tegn. Hvis meldingen din er lengre enn 70 tegn, blir den delt opp i flere segmenter, og tradisjonelle API-er tar betalt for hvert segment.
Hvordan kan jeg sjekke om teksten min inneholder Unicode før sending?
Du kan bruke SMS-lengdekalkulatorer på nett eller kjøre et enkelt regex-søk i koden din for å oppdage ikke-GSM-7-tegn. Alternativt kan du skrive valideringsskript som flagger eller fjerner ikke-GSM-7-tegn fra databasen din før de sendes til en utgående SMS-kø.
Tar MySMSGate ekstra betalt for Unicode eller meldinger med flere segmenter?
Nei. I motsetning til tradisjonelle API-er som Twilio eller Vonage som fakturerer per 160- eller 70-tegns segment, tar MySMSGate en fastpris på $0,02 per sendte melding. Fordi meldingen rutes direkte gjennom ditt eget Android-SIM-kort, betaler du ikke per segment. Dette lar deg sende emojier og lange meldinger uten å bekymre deg for skjulte avgifter.
Trenger jeg operatør- eller 10DLC-registrering for å bruke en Android SMS-gateway?
Nei. Fordi MySMSGate ruter meldinger gjennom din egen fysiske Android-telefon og ditt SIM-kort, sendes meldingene dine som vanlig person-til-person (P2P)-trafikk. Dette betyr at du slipper å gå gjennom komplisert, dyr og tidkrevende A2P 10DLC-registrering eller vente på godkjenning fra operatører.
Comments (0)
Be the first to comment!