Колко байта е един символ на кирилица и как да измерите размера на текст

3 ноември, 2026 • Ръководства • 31 преглеждания

Редици от плъстени вълнени кубчета в два размера, подредени върху ленена кърпа в светла стая в Пловдив

В UTF-8 една буква на кирилица заема 2 байта, ASCII знаците по 1, а емоджи като 😀 заема 4. Вижте измерени примери с български думи и как да проверите своя текст.

В кодировката UTF-8 една буква от българската азбука заема 2 байта, а латинските букви от A до Z, цифрите, интервалът и препинателните знаци от ASCII заемат по 1 байт. Други латински букви като „é“ заемат 2 байта, а знаци като € и „ заемат по 3 байта, а емоджи като 😀 заема 4 байта.

Затова един текст на кирилица почти винаги заема повече байтове, отколкото символи показва броячът. Разликата е важна, когато записвате текст в поле на база данни, попълвате формуляр с ограничение или следите размера на файл.

Колко байта заема един символ в UTF-8 според RFC 3629

Броят байтове зависи от кодовата точка на символа, тоест от номера му в Unicode. Документът RFC 3629, който описва UTF-8, разделя кодовите точки на четири диапазона (раздел 3, проверено на 29 октомври 2026 г.).

Кодови точкиБайтове в UTF-8Какво попада тук
от U+0000 до U+007F1латински букви, цифри, интервал, основни препинателни знаци (ASCII)
от U+0080 до U+07FF2буквите на кирилица, включително „ѝ“
от U+0800 до U+FFFF (без U+D800 до U+DFFF)3например €, „ и някои разширени кирилски букви
от U+10000 до U+10FFFF4емоджи като 😀

Кодовата точка и байтовете не са едно и също. Буквата „а“ има кодова точка U+0430, а в UTF-8 се записва с двата байта D0 и B0. Колкото по-голяма е кодовата точка, толкова повече байтове са нужни, за да се запише.

Колко байта заемат българските думи и изречения

Една българска дума заема два пъти повече байтове, отколкото има букви, а всяка цифра, интервал или препинателен знак добавя по 1 байт. Измерихме примерите по-долу на 29 октомври 2026 г. с Python 3.13. Броихме кодовите точки и дължината на текста в байтове след кодиране в UTF-8.

ТекстСимволиБайтове в UTF-8Откъде идва числото
Hello555 латински букви по 1 байт
Здравей7147 букви по 2 байта
Щастие6126 букви по 2 байта
София 202610155 букви по 2 байта, един интервал и 4 цифри по 1 байт
Здравей, свят!142511 букви по 2 байта, запетая, интервал и удивителен знак по 1 байт
лв.352 букви по 2 байта и точка от 1 байт
😀14едно емоджи от 4 байта

Сметката е лесна, ако знаете от какво се състои текстът. Смятате буквите на кирилица по 2 байта, всичко от ASCII по 1 байт и добавяте по 4 за емоджи като 😀. Други емоджита може да се състоят от няколко кодови точки и да заемат повече, затова за текст с емоджита е по-сигурно да ползвате калкулатора. Главните букви не променят сметката. „Щ“ в „Щастие“ също заема 2 байта, колкото и малкото „щ“.

UTF-8 байтовете на кирилските букви в шестнадесетичен вид

В UTF-8 всяка буква на кирилица се записва с два байта. В примерите по-долу първият байт е D0 или D1. Стойностите са изчислени на 29 октомври 2026 г. с Python 3.13.

БукваКодова точкаUTF-8 байтовеБрой байтове
аU+0430D0 B02
бU+0431D0 B12
йU+0439D0 B92
щU+0449D1 892
ъU+044AD1 8A2
юU+044ED1 8E2
яU+044FD1 8F2
ѝU+045DD1 9D2

Тези двойки са полезни, когато преглеждате файл байт по байт или търсите причината текстът да се показва неправилно. Байтовете D0 и D1 сами по себе си не са букви. Буквата се получава едва заедно със следващия байт.

Защо броят на символите и броят на байтовете не съвпадат

Броят на символите (кодовите точки) обикновено съвпада с броя на знаците, които виждате, а броят на байтовете показва колко място заемат те в UTF-8. Един видим знак обаче може да се състои от няколко кодови точки. В UTF-8 знаците са с различна дължина, затова двете числа съвпадат само при текст изцяло от ASCII, както при „Hello“. Щом в текста има кирилица, байтовете стават повече от символите.

Буквата й може да заема 2 или 4 байта

Знак, който изглежда по един и същ начин, може да бъде записан по два начина. Стандартът Unicode описва съставения запис NFC и разложения запис NFD в документа UAX #15 Normalization Forms (проверено на 29 октомври 2026 г.). В българския това се вижда най-ясно при „й“.

Запис на „й“Кодови точкиБайтовеUTF-8 байтове
един знак U+0439 (NFC)12D0 B9
„и“ и комбиниращ знак U+0306 (NFD)24D0 B8 CC 86

На екрана двата варианта изглеждат еднакво. Във втория обаче след буквата „и“ следва отделен знак, който добавя дъгичката над нея. Брояч на кодови точки ще покаже 2 символа, а размерът ще е 4 байта. Такъв разложен запис може да се появи в текст, копиран от някои източници. Ако кратка дума заема повече байтове, отколкото очаквате, проверете дали в нея няма разложени букви.

Буквата „ѝ“ (U+045D), която се използва например в „Дадох ѝ книгата“, при нашето измерване се оказа една кодова точка и зае 2 байта като останалите букви. Тя обаче също може да бъде записана разложено, като „и“ (U+0438) с комбиниращо ударение (U+0300), и тогава заема 4 байта.

Колко байта заема един и същ текст в UTF-8, UTF-16 и Windows-1251

Един и същ текст има различен размер в различните кодировки. На 29 октомври 2026 г. изчислихме размера на изречението „Здравей, свят“ (13 символа, без удивителен знак) в три кодировки.

КодировкаБайтовеКак се получава
UTF-82411 букви по 2 байта, запетаята и интервалът по 1 байт
UTF-16 (без BOM)26всеки от 13-те символа по 2 байта, с маркер BOM става 28
Windows-125113всеки символ по 1 байт

Правилата за UTF-16 са описани в RFC 2781 (раздел 2.1, проверено на 29 октомври 2026 г.). Символ с кодова точка под U+10000 се записва с едно 16-битово число, тоест с 2 байта. Символ с по-голяма кодова точка се записва с две такива числа (т.нар. сурогатна двойка), тоест с 4 байта. Затова в UTF-16 латинското „a“ и кирилското „а“ заемат еднакво място, а 😀 пак заема 4 байта.

Windows-1251 е еднобайтова кодова страница. В таблицата за съответствие CP1251.TXT на Unicode Consortium почти всеки байт от 0x00 до 0xFF е свързан с един знак от Unicode. Изключение е байтът 0x98, който в таблицата е отбелязан като неопределен. Например 0xC0 отговаря на „А“ (U+0410), а 0xE0 на „а“ (U+0430). Затова в тази кодировка повечето кирилски букви заемат 1 байт. За сметка на това кодовата страница може да записва само знаците от своята таблица. Българската „ѝ“ (U+045D) например не е в CP1251.TXT и не може да се запише директно в Windows-1251.

Защо кирилицата понякога се показва като Р°, С‰ и подобни знаци

Нечетливи знаци като „Р°“ се появяват, когато байтове, записани в UTF-8, бъдат прочетени като Windows-1251. Програмата приема всеки от двата байта на буквата за отделен знак и вместо една буква показва две.

При „а“ байтовете са D0 B0. В Windows-1251 байтът D0 е „Р“, а B0 е „°“, затова на екрана излиза „Р°“. Същото се случва и с останалите букви (изчислено с Python 3.13 на 29 октомври 2026 г.).

БукваUTF-8 байтове, прочетени като Windows-1251
аР°
бР±
щС‰
ъСЉ
юСЋ
яСЏ

При същото грешно четене изречението „Здравей, свят“ се превръща ⠄Здравей, СЃРІСЏС‚“. Как точно ще изглеждат сбърканите знаци, зависи от кодовата страница, с която се четат байтовете. Примерите тук са изчислени само за Windows-1251 и при друга кодова страница знаците ще са други.

В такъв случай байтовете във файла са наред, просто се тълкуват по грешна таблица. Отворете файла отново и изрично посочете кодировка UTF-8. Ако текстът стане четлив, файлът наистина е в UTF-8. Ако обаче файлът вече е бил записан повторно с грешните знаци, смяната на кодировката може да не е достатъчна.

Как да измерите размера на текст с калкулатора на digily.link

Можете да поставите текста в „Калкулатор за размер на текст“, който показва размера в байтове още докато пишете. Digily Link е наш продукт, а калкулаторът е един от инструментите на сайта digily.link.

  1. Отворете страницата Калкулатор за размер на текст в байтове.
  2. Напишете или поставете текста в полето „Текст“.
  3. Вижте стойността в „Размер“. Тя се обновява при всяка промяна и няма бутон за пресмятане.

Изчислението се извършва в браузъра и текстът не се изпраща към сървъра. Калкулаторът не прави допълнително почистване или Unicode нормализация на въведеното, затова измерва точно това, което сте поставили, включително интервалите, новите редове и разложените букви. Броят се байтове в UTF-8. Ако поставите „Здравей“, резултатът би трябвало да е 14 B, колкото показа и нашето измерване.

Размерът се показва в B, KB, MB, GB или TB, закръглен до два знака след десетичния разделител. Тук 1 KB е равен на 1024 байта (по стандартната нотация това е 1 KiB, а 1 kB са 1000 байта). Текст от точно 1024 байта се показва като „1024 B“, а при 1025 байта калкулаторът минава към килобайти и показва „1 KB“. Ако друга програма даде малко по-различно число в килобайти, проверете дали тя не смята 1 KB за 1000 байта.

Как да вместите текст на кирилица в поле с ограничение в байтове

В поле, което брои байтове, се побират около два пъти по-малко символи на кирилица, отколкото на латиница. Да вземем поле, което приема най-много 160 байта. Ограничението е измислено и не е взето от конкретна платформа.

Какъв е текстътКолко символа се побират в 160 байта
само латински букви, цифри и интервали (ASCII)до 160
само букви на кирилицаоколо 80
кирилица с интервали, цифри и препинателни знацимежду 80 и 160 според дела на ASCII знаците, които са по 1 байт (кавичките „“ обаче са по 3)
текст с емоджипо-малко, защото емоджи като 😀 заема 4 байта, а някои емоджита и повече

Например „Здравей, свят!“ има 14 символа, но заема 25 байта. От ограничението то изразходва толкова, колкото 25 латински знака.

  1. Напишете текста и го поставете в полето „Текст“ на калкулатора.
  2. Сравнете стойността в „Размер“ с ограничението. Тъй като 160 байта са под 1024, резултатът ще е в B.
  3. Ако стойността е над 160 B, съкратете някои думи, махнете емоджитата или, където е уместно, напишете числата с цифри. Цифрата е 1 байт, а буквата на кирилица е 2.
  4. Ако символите са малко, а байтовете неочаквано много, проверете копирания текст за разложени букви.
  5. Проверете текста и в самата система, защото тя може да брои символи вместо байтове или да смята по свой начин.

Какво да имате предвид при измерването на текст

Калкулаторът показва размера на текста в UTF-8, а не размера на конкретен файл на диска. Ако текстът бъде запазен в друга кодировка, например Windows-1251, размерът на файла може да се различава от стойността в „Размер“.

Новите редове също се броят и добавят байтове. Ако копирате текст с празни редове в края, размерът ще нарасне, макар че те не се виждат. Затова, преди да сравните резултата с ограничението, изтрийте излишните редове и интервали.

Когато трябва да вместите текст в точно ограничение, измерете размера на текста си в байтове, преди да го публикувате или запишете.

0 от 0 оценки