Какво представлява този инструмент?
За обикновен ASCII текст (английски букви, цифри, основна пунктуация) броят на символите и броят на байтовете са едно и също число — всеки символ заема точно един байт в UTF-8. Щом текстът включва букви с ударение, китайски/японски/корейски символи, кирилица, арабски, емоджита или повечето други символи извън ASCII, това вече не важи: един символ може да заеме 2, 3 или 4 байта в UTF-8 и 2 или 4 байта в UTF-16.
Това има значение винаги, когато дадена система има ограничение в байтове, а не в символи — SMS съобщенията, размерите на колони в бази данни, ограниченията на API payload и някои социални платформи измерват всичко в байтове, не в символи, така че един и същ текст може мълчаливо да надвиши ограничение в зависимост от езика или символите, които съдържа.
Защо да го използвате?
- Показва брой символи, UTF-8 байтове и UTF-16 байтове един до друг.
- Брои коректно емоджита и други символи извън Basic Multilingual Plane като един символ, не два.
- Актуализира се на живо докато пишете — не се налага да натискате бутон.
- Работи изцяло във вашия браузър — без качване.
- Безплатно, без регистрация, без ограничения.
Как да го използвате
- Напишете или поставете текст в полето.
- Прочетете броя символи, броя UTF-8 байтове и броя UTF-16 байтове отдолу — те се актуализират докато пишете.
Пример
Вход
Hello, 世界! 🌍Резултат
12 символа, 19 UTF-8 байта, 26 UTF-16 байтаASCII частта ("Hello, " и "! ") заема 1 байт на символ в UTF-8. Всеки китайски символ заема 3 байта, а емоджито заема 4 байта — затова броят на байтовете е забележимо по-висок от броя на символите.
Често срещани приложения
- Проверка дали многоезично описание на продукт ще се побере в колона на база данни, дефинирана чрез дължина в байтове, а не брой символи.
- Оценка на използването на SMS сегменти, тъй като SMS се таксува и разделя според размера в байтове, а нелатинският текст има различно ограничение на сегмент.
- Проверка дали API payload или поле от формуляр остава под ограничение на размера, базирано на байтове, преди изпращане.
- Разбиране защо низ, който "изглежда кратък", се отхвърля от система с проверка на дължината, базирана на байтове.
Често задавани въпроси
Защо броят на символите и броят на байтовете не съвпадат?
Unicode текстът се съхранява като байтове, а колко байта се нуждае всеки символ зависи от кодировката и самия символ. В UTF-8 ASCII символите заемат 1 байт, повечето латински букви с ударение и кирилица/гръцки/иврит/арабски заемат 2 байта, повечето CJK символи заемат 3 байта, а емоджитата обикновено заемат 4 байта. Броят на символите просто брои знаци, без значение как са съхранени.
Кой брой байтове трябва да използвам за поле с ограничение в байтове?
Използвайте кодировката, която системата действително използва за съхранение или предаване на текста — повечето съвременни уеб API, бази данни и файлове използват UTF-8, така че броят на UTF-8 байтовете обикновено е релевантният. Някои по-стари системи (като вътрешната обработка на низове в Windows/Java) използват UTF-16.
Брои ли този инструмент коректно емоджита?
Да. Много емоджита се съхраняват вътрешно като двойка UTF-16 "сурогатни" кодови единици, които наивните методи за броене броят като 2 символа. Този инструмент брои коректно Unicode кодовите точки, така че едно емоджи се брои като 1 символ, съответстващ на това колко символа човек действително вижда.
Същото ли е това като инструмента Брояч на думи?
Не — Броячът на думи се фокусира върху броя на думите и изреченията за писане. Този инструмент е конкретно за размера в байтове спрямо броя символи, което има значение за технически ограничения, а не за изисквания за брой думи.
Качва ли се текстът ми някъде?
Не. Броенето се извършва локално във вашия браузър чрез вградения текстов кодер на JavaScript; нищо не се изпраща до сървър.