Bir simvol neçə baytdır və Azərbaycan hərfli mətnin ölçüsü necə hesablanır

5 Noyabr, 2026 • Bələdçilər • 19 baxış • 12 dəqiqələr oxundu

Bakı İçərişəhərində daş pəncərə taxtasında kiçik boş keramik plitələri çəkən köhnə mis tərəzi

UTF-8-də hər Unicode kod nöqtəsi 1 ilə 4 bayt arası yer tutur. ə, ş, ğ kimi Azərbaycan hərflərinin neçə bayt olduğunu cədvəldə görün və mətninizin ölçüsünü baytla hesablayın.

UTF-8 kodlaşdırmasında hər Unicode kod nöqtəsi 1 ilə 4 bayt arası yer tutur. Adi Latın hərfləri, rəqəmlər və boşluq 1 bayt tutur. Azərbaycan dilinə xas ə, ş, ğ, ı kimi hərflər 2 bayt, manat işarəsi ₼ 3 bayt, 😀 kimi emoji isə 4 baytdır. Ekranda bir işarə kimi görünən bəzi emoji birləşmələri isə bir neçə kod nöqtəsindən ibarətdir və daha çox bayt tutur.

Buna görə Azərbaycan dilində yazılmış mətnin bayt sayı adətən simvol sayından bir qədər çox olur. Fərqin nə qədər olacağı mətndəki xüsusi hərflərin, işarələrin və emojilərin sayından asılıdır. Cədvəllərdəki bayt aralıqları UTF-8 standartından götürülüb, söz və hərf nümunələrini isə özümüz ölçmüşük.

RFC 3629 üzrə UTF-8 bayt aralıqları

Simvolun UTF-8-də neçə bayt tutacağını onun Unicode kod nöqtəsi müəyyən edir. UTF-8 standartını təsvir edən RFC 3629 sənədinin 3-cü bölməsində kod nöqtələri dörd aralığa bölünür.

Kod nöqtəsi aralığıUTF-8-də bayt sayıNümunə
U+0000 ilə U+007F arası1a, Z, 7, boşluq
U+0080 ilə U+07FF arası2ə, ş, ç, ğ, ı
U+0800 ilə U+FFFF arası3₼
U+10000 ilə U+10FFFF arası4😀

ASCII simvolları birinci aralığa düşür, ona görə də hər biri bir bayt tutur. Boşluq da ASCII simvoludur və 1 bayt tutur. Azərbaycan əlifbasının xüsusi hərfləri ikinci aralıqdadır. Manat işarəsi üçüncü, emoji isə dördüncü aralığa aiddir.

Azərbaycan hərfləri və sözləri neçə baytdır

Azərbaycan əlifbasında ASCII-də olmayan hərflər kiçik ç, ə, ğ, ı, ö, ş, ü və böyük Ç, Ə, Ğ, İ, Ö, Ş, Ü hərfləridir. Bu hərflərin hər biri UTF-8-də 2 bayt tutur. Qalan hərflər, o cümlədən i və I, adi Latın hərfləridir və bir baytla yazılır.

Aşağıdakı nümunələri 29 oktyabr 2026-cı ildə Python 3.13-də len(s.encode('utf-8')) ifadəsi ilə ölçdük. Simvol sütununda kod nöqtələrinin sayı göstərilir.

MətnSimvolUTF-8 baytFərqin səbəbi
Salam55Bütün hərflər ASCII-dir
Ərzaq56Ə hərfi 2 bayt tutur
Bakı 2026910ı hərfi 2 bayt, boşluq və rəqəmlər 1 bayt tutur
Gəncə57Sözdə iki ə var
₼13Üçüncü aralığa aiddir
😀14Dördüncü aralığa aiddir

Buradan sadə bir qayda çıxır. Hər xüsusi Azərbaycan hərfi bayt sayını 1 artırır, ₼ işarəsi 2, 😀 kimi tək kod nöqtəli emoji isə 3 artırır. «Gəncə» sözündə iki ə olduğu üçün 5 simvol 7 bayt edir.

Azərbaycan hərflərinin UTF-8 baytları onaltılıq yazılışda

UTF-8-də 2 baytlıq hər hərf iki ayrı bayt kimi saxlanılır. Proqramçılar bu baytları adətən onaltılıq say sistemində görürlər. Cədvəldəki dəyərləri də Python 3.13-də ch.encode('utf-8') ilə almışıq.

HərfKod nöqtəsiUTF-8 baytlarıBayt sayı
əU+0259C9 992
ƏU+018FC6 8F2
ıU+0131C4 B12
İU+0130C4 B02
ğU+011FC4 9F2
şU+015FC5 9F2
çU+00E7C3 A72
öU+00F6C3 B62
üU+00FCC3 BC2

Diqqət etsəniz, ı, İ və ğ hərflərinin birinci baytı eynidir (C4), fərq yalnız ikinci baytdadır. Eyni şey ç, ö və ü hərflərinə də aiddir, üçü də C3 baytı ilə başlayır. Ə ilə ə isə tamamilə fərqli baytlarla yazılır, çünki onların kod nöqtələri bir-birinə yaxın deyil.

Simvol sayı ilə bayt sayı niyə fərqlənir

Simvol sayı mətndə neçə işarə olduğunu, bayt sayı isə bu işarələrin seçilmiş kodlaşdırmada neçə baytla ifadə olunduğunu göstərir. Proqramın əməli yaddaşında mətnin tutduğu yer bundan fərqli ola bilər. Mətn yalnız ASCII simvollarından ibarətdirsə, bu iki rəqəm üst-üstə düşür. Mətnə Azərbaycan hərfləri, ₼ və ya emoji əlavə olunanda bayt sayı artır. Bundan başqa elə hallar da var ki, ekranda eyni görünən mətn fərqli sayda bayt tutur.

Eyni görünən hərf iki cür kodlaşdırıla bilər

Unicode-da bir hərf ya hazır, birləşmiş simvol kimi, ya da əsas hərf və ona qoşulan ayrıca işarə kimi yazıla bilər. Bu iki yazılış Unicode-un UAX #15 sənədində NFC və NFD normallaşdırma formaları kimi təsvir olunur. Ekranda nəticə eyni görünür, amma ikinci variantda kod nöqtələri, deməli baytlar da daha çox olur. Bəzi mənbələrdən kopyalanan mətn belə ayrışmış formada gələ bilər.

Oxşar vəziyyət Unicode-un böyük və kiçik hərf qaydalarında da yaranır. SpecialCasing.txt faylına görə İ hərfinin ümumi, dildən asılı olmayan kiçik forması i hərfi ilə ona birləşən üst nöqtədir (U+0069 və U+0307). Bu, bir yox, iki kod nöqtəsidir. Bunlardan i 1 bayt tutur, U+0307 isə RFC 3629 cədvəlinə görə 2 baytlıq aralığa düşür. Nəticədə adi i hərfinə bənzəyən bu birləşmə 1 əvəzinə 3 bayt tutur.

İ və ı hərflərində böyük və kiçik hərf çevrilməsi bayt sayını dəyişir

Həmin SpecialCasing faylında «Turkish and Azeri» adlı ayrıca bölmə var və orada «az» kodu ilə Azərbaycan dili üçün xüsusi qaydalar verilib. Bu qaydalara görə çevrilmə belə aparılır.

  • Böyük İ kiçik hərfə çevriləndə i olur (U+0130 əvəzinə U+0069). Bayt sayı 2-dən 1-ə enir.
  • Azərbaycan dilinin hərf çevirmə qaydaları tətbiq olunanda böyük I kiçik hərfə çevriləndə ı olur (U+0049 əvəzinə U+0131). Bayt sayı 1-dən 2-yə qalxır.
  • Kiçik i böyük hərfə çevriləndə İ olur. Bayt sayı 1-dən 2-yə qalxır.

Deməli, Azərbaycan dilində eyni sözü böyük hərflərlə yazmaq bayt sayını dəyişə bilər. Məsələn, «iki» sözü 3 bayt, «İKİ» isə 5 bayt tutur. Proqram dil qaydasını nəzərə almadan çevirmə aparırsa, İ hərfi ümumi qaydaya görə i və üst nöqtəyə çevrilir və mətn yenə fərqli sayda bayt tutur.

Məktəbdə öyrədilən 1 və 2 bayt qaydası UTF-8-də necə işləyir

Məktəbdə adətən 1 baytın 8 bit olduğu, bir simvolun ASCII-də 1 bayt, Unicode-da isə 2 bayt tutduğu öyrədilir. 1 bayt = 8 bit bərabərliyi doğrudur. «Unicode-da 2 bayt» cavabı isə yalnız müəyyən bir kodlaşdırmaya uyğun gəlir.

Bu cavab UTF-16 kodlaşdırmasındakı vəziyyətə uyğun gəlir. RFC 2781 sənədinin 2.1 bölməsinə görə U+10000-dən kiçik kod nöqtələri UTF-16-da bir 16 bitlik ədədlə, yəni 2 baytla yazılır. Daha böyük kod nöqtələri, məsələn emoji, iki 16 bitlik ədəddən ibarət surroqat cüt tələb edir və 4 bayt tutur.

UTF-8-də isə simvolun sabit uzunluğu yoxdur. RFC 3629-a görə simvol 1 ilə 4 bayt arası yer tutur. Ona görə «Unicode-da 2 bayt» fikri yalnız UTF-16 üçün və yalnız U+10000-dən aşağı simvollar üçün doğrudur. UTF-8-də ASCII hərfi 1, ə hərfi 2, emoji isə 4 bayt tutur.

UTF-8, UTF-16 və Windows kod səhifələrində eyni mətnin ölçüsü

Eyni mətn seçilmiş kodlaşdırmadan asılı olaraq yaddaşda fərqli yer tutur. «Bakı şəhəri» ifadəsini (11 simvol) üç kodlaşdırmada müqayisə etdik.

KodlaşdırmaBir simvola düşən bayt«Bakı şəhəri» ölçüsü
UTF-81 ilə 4 arası15 bayt
UTF-16U+10000-dən aşağı 2, yuxarı 422 bayt (BOM olmadan)
Windows-12541Saxlanıla bilməz, ə və Ə hərfləri yoxdur

Bu ifadədə ən çox yeri UTF-16 tutur, çünki ASCII hərfləri də daxil olmaqla hər simvol 2 bayt olur. UTF-8 ASCII hərflərini bir baytda saxladığı üçün Latın qrafikalı Azərbaycan mətnində adətən daha az yer tutur.

Windows-1254 və Windows-1251 kod səhifələrində dəstəklənən hər simvol bir baytla yazılır, amma bu kod səhifələri bütün Unicode simvollarını əhatə etmir. Unicode Konsorsiumunun dərc etdiyi uyğunluq fayllarında 0x00 ilə 0xFF arasındakı baytların demək olar ki, hamısı bir Unicode simvolu ilə uyğunlaşdırılır. İstisnalar da var, Windows-1251 faylında 0x98, Windows-1254 faylında isə yeddi bayt təyin olunmayıb. Windows-1254 faylında ı (0xFD), İ (0xDD), ğ (0xF0), ş (0xFE) və ç (0xE7) var, amma ə (U+0259) yoxdur. Buna görə Azərbaycan mətni bu kod səhifəsində tam saxlanıla bilməz. Windows-1251 faylında isə Kiril hərfləri bir baytla yazılır. Məsələn, 0xC0 baytı А, 0xE0 baytı а, 0xA8 baytı isə Ё hərfinə uyğundur.

Mətndə ç və É™ kimi qəribə simvollar niyə görünür

Mətndə «Bakı ÅŸÉ™hÉ™ri» kimi anlaşılmaz simvollar görünürsə, bu, adətən UTF-8 ilə saxlanmış mətnin tək baytlıq kod səhifəsi ilə oxunduğunu göstərir. Belə pozulmuş görüntüyə mojibake da deyilir. UTF-8-də 2 bayt tutan Azərbaycan hərflərinin əksəriyyəti bu halda iki ayrı simvol kimi oxunur. Yuxarıdakı nümunə «Bakı şəhəri» ifadəsinin UTF-8 baytları Windows-1252 kod səhifəsində oxunanda alınır. Nəticəni Python 3.13 ilə hesabladıq.

HərfUTF-8 baytlarıWindows-1252-də oxunanda
əC9 99É™
ƏC6 8F0x8F baytı Windows-1252-də müəyyən edilməyib
ıC4 B1ı
çC3 A7ç
şC5 9FÅŸ
ğC4 9FÄŸ
öC3 B6ö
üC3 BCü

Ekranda nə görünəcəyi baytların hansı kod səhifəsi ilə oxunmasından asılıdır. Cədvəldəki nəticə yalnız Windows-1252 üçün hesablanıb, başqa kod səhifəsində başqa cür pozulmuş görüntü alına bilər. Bu zaman baytların özü dəyişmir, sadəcə səhv şərh olunur. Ona görə baytlara toxunulmayıbsa, faylı yenidən UTF-8 kodlaşdırması ilə açanda mətn adətən düzgün görünür.

Mətn ölçüsü kalkulyatoru ilə mətnin neçə bayt olduğunu tapmaq

Öz mətninizin neçə bayt tutduğunu «Mətn ölçüsü kalkulyatoru» ilə tapa bilərsiniz. Digily Link bizim məhsulumuzdur, bu kalkulyator da digily.link saytındakı alətlərdən biridir.

  1. digily.link saytında «Mətn ölçüsü kalkulyatoru» səhifəsini açın.
  2. Mətninizi «Mətn» sahəsinə yazın və ya yapışdırın.
  3. «Ölçü» nəticəsinə baxın. Nəticə siz yazdıqca dərhal yenilənir, ayrıca düymə basmaq lazım deyil.

Hesablama brauzerinizdə aparılır və mətn serverə göndərilmir. Mətn heç bir dəyişikliyə uğramadan, yazdığınız kimi ölçülür. Proqramçılar üçün qeyd edək ki, alət ölçünü new Blob([text]).size ilə tapır, yəni mətnin UTF-8 bayt sayını göstərir.

Böyük mətnlərin ölçüsü B, KB, MB, GB və TB vahidləri ilə göstərilir. Burada 1 KB 1024 bayta bərabərdir (beynəlxalq ikilik vahidlərdə buna 1 KiB deyilir, onluq sistemdə isə 1 kB 1000 baytdır) və nəticə vergüldən sonra iki rəqəmədək yuvarlaqlaşdırılır. Keçid həddi də 1024 baytdır. Tam 1024 baytlıq mətn «1024 B» kimi görünür, 1025 baytdan başlayaraq isə nəticə KB ilə verilir və 1025 bayt «1 KB» kimi çıxır. Kilobaytı 1000 bayt kimi hesablayan proqramlarla müqayisə edərkən bu fərqi nəzərə alın.

Bayt limiti olan sahəyə Azərbaycan dilində mətn yerləşdirmək

Fərz edək ki, istifadə etdiyiniz sistemdə bir sahəyə ən çox 160 bayt yazmaq olar. Bu rəqəm şərtidir, heç bir konkret platformaya aid deyil və yalnız hesablamanı göstərmək üçün seçilib.

Yalnız ASCII simvollarından ibarət mətndə 160 bayt elə 160 simvol deməkdir. Azərbaycan dilində isə hər kiçik ç, ə, ğ, ı, ö, ş, ü və böyük Ç, Ə, Ğ, İ, Ö, Ş, Ü hərfi bir əlavə bayt tələb edir. Mətndə bu hərflərdən başqa yalnız adi simvollar varsa, sahəyə sığan simvol sayını tapmaq üçün 160-dan xüsusi hərflərin sayını çıxmaq kifayətdir. Məsələn, mətninizdə 20 xüsusi hərf varsa, sahəyə 140 simvol sığır, çünki 140 simvol və 20 əlavə bayt birlikdə 160 bayt edir. Azərbaycan mətnində hərflərin çoxu ASCII olduğu üçün mətn ASCII ilə yazılmış variantından cəmi bir qədər böyük alınır.

  1. Mətni «Mətn» sahəsinə yapışdırın və «Ölçü» nəticəsinə baxın. 1024 baytdan kiçik mətnlərin ölçüsü B ilə göstərilir, məsələn «152 B».
  2. Nəticə 160 B-dən çoxdursa, mətni qısaldın. Silinən hər adi hərf 1, hər ə və ya ş 2, ₼ işarəsi 3, emoji isə 4 bayt yer boşaldır.
  3. Sətir sonlarını da yoxlayın, çünki onlar da ölçüyə daxildir. UTF-8-də LF (\n) 1 bayt, Windows-da yayılmış CRLF (\r\n) isə 2 bayt tutur. Lazımsız boş sətirləri silsəniz, mətn bir qədər kiçilər.
  4. Son mətni hədəf sistemə daxil edib orada da yoxlayın. Bəzi sahələr limiti baytla deyil, simvol sayı ilə hesablayır.

Bayt hesablamasında nəzərə alınmalı məhdudiyyətlər

  • Kalkulyator yalnız UTF-8 baytlarını sayır. Fayl Windows-1251, Windows-1254 və ya başqa kodlaşdırmada saxlanıbsa, onun ölçüsü göstərilən rəqəmdən fərqli ola bilər.
  • Sətir sonları da mətnin bir hissəsidir və hesablamaya daxil edilir.
  • Nəticə simvol sayı deyil, bayt sayıdır. Sistem limiti simvol sayı ilə qoyursa, sizə başqa rəqəm lazım olacaq.
  • Ayrışmış formada kopyalanmış hərflər eyni görünən mətnin daha çox bayt tutmasına səbəb ola bilər. İ və ı hərflərində böyük və kiçik hərf çevrilməsi də bayt sayını dəyişir.

Mətninizin limitə sığıb-sığmadığını yoxlamaq üçün Mətn ölçüsü kalkulyatoru ilə mətninizin ölçüsünü baytla hesablayın.

0 reytinqdən 0