APK hataları

SMS'te ə harfi mesajı 70 karaktere indirir

Düz Latin harfleri bir SMS'e 160 karakter sığdırır. ə, ö, ü, ğ, ş, ç ya da ı o tabloda yoktur. Bir tanesi bütün mesajı başka tabloya geçirir: sınır 70 olur. Uzun mesajda parçalar 67 karakterden bölünür.

Türk operatör tablosu ö, ü, ğ, ş, ç, ı tutabilir. ə orada da yoktur. Çoğu gönderim kapısı Türkçe tabloyu açmaz, onun için bu harflerin hepsi 70'e düşürür.

Harfi e ile değiştirmek sözü değiştirir. əl ile el aynı değildir. Önce say.

XUSUSI = set("əƏöÖüÜğĞşŞçÇıİ")

def hisseler(metn: str) -> int:
    ucs = any(h in XUSUSI for h in metn)
    n = len(metn.encode("utf-16-le")) // 2
    if not ucs:
        return 1 if n <= 160 else (n + 152) // 153
    return 1 if n <= 70 else (n + 66) // 67

print(hisseler("a" * 100))
print(hisseler("ə" + "a" * 99))