Müşterilerinize sadece basit bir randevu hatırlatması gönderdikten sonra SMS faturanızın görünürde hiçbir neden yokken iki katına çıktığını fark ettiğiniz oldu mu? Bu durum, genellikle göz ardı edilen ancak iletişim bütçenizi ciddi şekilde etkileyebilecek teknik bir konu olan **SMS mesaj kodlaması** (encodage sms message) ile doğrudan ilgilidir.

SMS Mesaj Kodlaması Nedir?

Net bir SMS kodlama tanımı yapmak gerekirse, mobil ağların tüm karakterleri aynı şekilde okumadığını anlamak önemlidir. Kodlama, mesajınızdaki harfleri, sayıları ve sembolleri telekom operatörleri tarafından iletilebilen ikili verilere (0'lar ve 1'ler) dönüştüren teknik işlemdir.

Tarihsel olarak, hücresel ağlar çok hafif mesajlar iletmek üzere tasarlanmıştır. Günümüzde SMS gönderimini belirleyen iki ana standart bulunmaktadır:

  • GSM-7: Karakter başına 7 bit kullanan standart kodlamadır. Tek bir SMS'te 160 karaktere kadar yazılmasına olanak tanır.
  • UCS-2 (Unicode): Latin alfabesi dışındaki diller, karmaşık özel karakterler ve emojiler için gerekli olan, karakter başına 16 bit kullanan daha zengin bir kodlamadır. Tek bir SMS'in boyutunu yalnızca 70 karakterle sınırlar.

GSM-7 vs UCS-2 : Le piège des caractères spéciaux et des emojis

Küçük işletme sahipleri (kuaförler, tıp klinikleri, sürücü kursları vb.) için karmaşa tam da bu noktada başlar. GSM-7 tablosunun dışındaki tek bir karakter bile mesajınızın tamamının Unicode formatına geçmesine neden olur.

Türkçede sıkça kullanılan "ç", "ş", "ğ" gibi harfler veya Fransızcadaki "ê", "ë" gibi özel ve aksanlı karakterlerin SMS kodlaması, ayrıca UCS-2 kodlaması ile SMS üzerinden emoji gönderilmesi, mesaj başına karakter sınırınızı anında 160'tan 70'e düşürür. Dolayısıyla, emojilerin SMS kodlaması üzerindeki etkisi anında görülür: Mesajınız birden fazla parçaya (segmente) bölünür ve bu da geleneksel sağlayıcıların çoğunda gönderim maliyetini katlar.

Bu farkı daha iyi görebilmeniz için karşılaştırmalı bir tabloyu aşağıda bulabilirsiniz:

Kodlama StandardıKarakter Sınırı (1 SMS)İzin Verilen KarakterlerKlasik Faturalandırmaya Etkisi
GSM-7160 karakterTemel Latin alfabesi, sayılar, boşluklar ve bazı yaygın aksanlı harflerStandart ücretlendirme (1 kredi)
UCS-2 (Unicode)70 karakterTüm alfabeler (Arapça, Kiril, Çince), emojiler, karmaşık özel karakterler (ç, ş, ğ, ê, ï)İki veya üç katı ücretlendirme (çoklu segment)

Unicode Kodlamanın SMS Fiyatı Üzerindeki Etkisi

Unicode kodlamanın SMS fiyatı üzerindeki etkisi, Twilio veya Plivo gibi klasik SMS ağ geçitlerinin bir numaralı finansal tuzağıdır. Bu platformlar SMS "segmenti" başına ücret alır. Bir segment, GSM-7 standartlarında 160 karaktere karşılık gelirken, tek bir Unicode karakter tespit edildiği anda 70 karaktere düşer.

Bir oto tamirhanesi işlettiğinizi ve şu randevu hatırlatmasını gönderdiğinizi hayal edelim:

"Merhaba! Aracınız hazır. Lütfen saat 18:00'den önce servisten teslim alınız. Görüşmek üzere!"

Bu mesaj 105 karakter içermektedir. Bu şekilde gönderdiğinizde, standart GSM-7 kodlamasını kullanır (büyük harfler veya bazı Türkçe karakterler ağ geçidine bağlı olarak bazen sorun yaratabilir, ancak geri kalanı standarttır). Bu işlem size 1 SMS segmenti maliyeti getirir.

Mesajı daha samimi hale getirmek için sonuna basit bir araba emojisi eklerseniz, mesaj UCS-2 formatına geçer. Artık 106 karakteriniz, Unicode'un 70 karakterlik katı sınırını aşmış olur. Mesajınız bu durumda 2 segmente bölünür. Klasik bir operatörde, sırf bir emoji yüzünden bu mesaj için iki katı ücret ödersiniz.

Birçok işletmenin alternatif arayışına girmesinin nedeni tam da bu tür hoş olmayan sürprizlerden kaçınmaktır. MySMSGate ile mesajlarınızı göndermek için kendi Android akıllı telefonunuzu bağlarsınız. Uzunluğu veya kodlaması ne olursa olsun, gönderilen SMS başına 0,02 ABD doları tutarında tek ve sabit bir ücret alırız. Gizli segment ücretlendirmesi yoktur. Ekonomik seçenekler hakkında daha fazla bilgi edinmek için küçük işletmeler için en ucuz SMS API'si hakkındaki rehberimizi inceleyebilirsiniz.

Geliştiriciler: API ile SMS Gönderirken Hangi Kodlama Seçilmeli?

Kendi uygulamanıza veya yönetim yazılımınıza SMS bildirimleri entegre ediyorsanız, şu teknik soru ortaya çıkar: API ile SMS gönderirken hangi kodlama seçilmeli?

MySMSGate de dahil olmak üzere modern API'lerin neredeyse tamamı UTF-8 olarak kodlanmış JSON formatındaki istekleri kabul eder. Ancak, SMS ağ geçidinin daha sonra bu UTF-8 akışını mobil ağa dönüştürmesi gerekir. Maksimum uyumluluk sağlamak ve bozuk karakterleri (meşhur soru işaretleri veya siyah kareler) önlemek için SMS ağ geçidi UTF-8 kodlamasını doğru şekilde yapılandırmak çok önemlidir.

Karmaşık bölünmelerle uğraşmadan, MySMSGate API'si üzerinden doğru şekilde kodlanmış bir mesaj göndermek için Python dilindeki basit bir örneği aşağıda bulabilirsiniz:

import requests

url = "https://mysmsgate.net/api/v1/send"
headers = {
    "Authorization": "Bearer VOTRE_CLE_API",
    "Content-Type": "application/json"
}
payload = {
    "to": "+33612345678",
    "message": "Votre rendez-vous est confirmé pour demain à 14h ! ",
    "sim_slot": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())

API'miz dönüştürme işlemini şeffaf bir şekilde yönetir. Ayrıca sistemimiz, teslimat başarısızlığı durumunda otomatik bir iade mekanizması barındırarak yalnızca gerçekten çalışan işlemler için ödeme yapmanızı sağlar. Kendi sunucunuza eksiksiz bir entegrasyon sağlamak için API aracılığıyla bir Android telefondan SMS gönderme hakkındaki eğitimimizi okuyun.

SMS Çift Kodlaması Nasıl Önlenir?

SMS çift kodlamasını önlemek için, kodunuzun HTTP kütüphaneniz tarafından zaten işlenmiş olan bir karakter dizesine ek bir kodlama işlevi (urlencode veya utf8_encode gibi) uygulamadığından emin olun. Çift kodlanmış verilerin gönderilmesi, müşterilerinizin garip sembol dizileri içeren okunaksız mesajlar almasına neden olur.

Özel Bir Durum: SMS/MMS Video Kodlama Hazır Ayarı (Preset)

Mobil telekomünikasyon alanında bazen SMS/MMS video kodlama hazır ayarı (preset encodage sms/mms video) terimiyle karşılaşabilirsiniz. Metin kodlamasının aksine (GSM-7 veya UCS-2), bu hazır ayar MMS ile gönderilen multimedya dosyalarının (videolar, hareketli görüntüler) sıkıştırılması ve biçimlendirilmesi ile ilgilidir.

Mobil ağlar, MMS için çok katı boyut sınırları uygular (operatöre bağlı olarak genellikle 300 KB veya 600 KB'tan az). Video kodlama hazır ayarı, bir videonun çözünürlüğünü ve bit hızını büyük ölçüde düşürerek operatörün ağ geçidi tarafından reddedilmeden iletilmesini sağlar. Amacınız yalnızca metin bildirimleri veya operasyonel hatırlatıcılar göndermekse, bu karmaşık ayarlarla uğraşmanıza gerek kalmayacaktır.

SMS Kodlaması Hakkında Sıkça Sorulan Sorular

Kurumsal SMS gönderirken kodlama yönetimi ve özel karakterlerle ilgili en sık sorulan soruların yanıtlarını aşağıda bulabilirsiniz.

Neden tek bir aksanlı harf veya Türkçe karakter SMS ücretimi iki katına çıkarabilir?

Türkçedeki "ş", "ğ" gibi bazı karakterler veya Fransızcadaki "ç", "ê", "à" gibi harfler standart GSM-7 alfabesinde yer almaz. Bu karakterlerden birini kullandığınızda, gönderim yazılımınız mesajın tamamını Unicode (UCS-2) moduna geçirir. Böylece SMS başına sınır 160 karakterden 70 karaktere düşer. Metniniz 70 karakteri aşarsa iki segmente bölünür ve geleneksel operatörlerde gönderim maliyeti iki katına çıkar.

SMS'lerimi göndermeden önce kodlamasını nasıl test edebilirim?

Çevrimiçi olarak kullanabileceğiniz SMS segment test araçları (genellikle "SMS Length Calculator" olarak adlandırılır) mevcuttur. Bu araçlar, metninizi yapıştırarak görünmez bir karakterin veya bir emojinin Unicode'a geçişi tetikleyip tetiklemediğini ve sağlayıcınız tarafından faturalandırılacak kesin segment sayısını anında görmenizi sağlar.

MySMSGate, Unicode kaynaklı ek maliyetlerin önüne nasıl geçiyor?

Her segmenti ayrı ayrı ücretlendiren klasik API'lerin (Twilio, Plivo) aksine, MySMSGate uzunluğu ne olursa olsun veya özel karakter/emoji içerip içermediğine bakılmaksızın gönderilen mesaj başına 0,02 ABD doları tutarında tek ve sabit bir ücret uygular. Mesajlarınız doğrudan platformumuza bağlı kendi Android akıllı telefonunuz üzerinden iletilir, bu da fahiş segment ücretlerini ortadan kaldırır.