APK xətaları

SMS-də ə hərfi mesajı 70 simvola endirir

Sadə latın hərfləri bir SMS-ə 160 simvol sığdırır. ə, ö, ü, ğ, ş, ç və ya ı o cədvəldə yoxdur. Bir dənəsi bütün mesajı başqa cədvələ keçirir: limit 70 olur. Uzun mesajda hissələr 67 simvoldan bölünür.

Türk operator cədvəli ö, ü, ğ, ş, ç, ı saxlaya bilər. ə orada da yoxdur. Əksər göndəriş qapıları türk cədvəlini açmır, ona görə bu hərflərin hamısı 70-ə salır.

Hərfi e ilə əvəz etmək sözü dəyişir. əl və el eyni deyil. Sayını əvvəl hesabla.

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))