CodeKitHub
Алати за текст

Бројач бајтова — Број карактера наспрам величине у бајтовима

Poslednje ažurirano:

Укуцајте или налепите текст и уживо пратите колико карактера садржи у поређењу са тим колико бајтова заправо заузима у UTF-8 и UTF-16 — ове две вредности се разилазе чим се појаве карактери ван ASCII (акценти, CJK текст, емоџији).

0
Characters
0
UTF-8 bytes
0
UTF-16 bytes

Šta je ovaj alat?

За обичан ASCII текст (енглеска слова, цифре, основна интерпункција), број карактера и број бајтова су исти број — сваки карактер заузима тачно један бајт у UTF-8. Чим текст укључи акцентована слова, кинеске/јапанске/корејске карактере, ћирилицу, арапски, емоџије или већину других карактера ван ASCII-ја, ово више не важи: један карактер може заузети 2, 3 или 4 бајта у UTF-8, и 2 или 4 бајта у UTF-16.

Ово је важно кад год систем има ограничење у бајтовима, а не у карактерима — SMS поруке, величине колона у базама података, ограничења API оптерећења и неке друштвене платформе мере све у бајтовима, не у карактерима, тако да исти текст може тихо премашити ограничење у зависности од језика или симбола које садржи.

Zašto ga koristiti?

  • Приказује број карактера, UTF-8 бајтове и UTF-16 бајтове један поред другог.
  • Исправно броји емоџије и друге карактере ван Basic Multilingual Plane као један карактер, не два.
  • Ажурира се уживо док куцате — нема дугме за кликање.
  • Ради у потпуности у вашем прегледачу — без отпремања.
  • Бесплатно, без регистрације, без ограничења.

Kako se koristi

  1. Укуцајте или налепите текст у поље.
  2. Прочитајте број карактера, број UTF-8 бајтова и број UTF-16 бајтова испод — ажурирају се док куцате.

Primer

Unos

Hello, 世界! 🌍

Rezultat

12 карактера, 19 UTF-8 бајтова, 26 UTF-16 бајтова

ASCII део ("Hello, " и "! ") заузима 1 бајт по карактеру у UTF-8. Сваки кинески карактер заузима 3 бајта, а емоџи заузима 4 бајта — зато је број бајтова приметно већи од броја карактера.

Уобичајене употребе

  • Провера да ли ће вишејезични опис производа стати у колону базе података дефинисану дужином у бајтовима, а не бројем карактера.
  • Процена коришћења SMS сегмената, пошто се SMS наплаћује и дели по величини у бајтовима, а нелатинични текст има другачије ограничење по сегменту.
  • Потврђивање да API оптерећење или поље обрасца остаје испод ограничења величине заснованог на бајтовима пре слања.
  • Разумевање зашто систем са провером дужине заснованом на бајтовима одбија низ који „изгледа кратко”.

Često postavljana pitanja

Зашто се број карактера и број бајтова не поклапају?

Unicode текст се чува као бајтови, а колико бајтова је потребно сваком карактеру зависи од кодирања и самог карактера. У UTF-8, ASCII карактери заузимају 1 бајт, већина акцентованих латиничних слова и ћирилица/грчки/хебрејски/арапски заузимају 2 бајта, већина CJK карактера заузима 3 бајта, а емоџији обично заузимају 4 бајта. Број карактера једноставно броји симболе, без обзира како су сачувани.

Који број бајтова треба да користим за поље са ограничењем у бајтовима?

Користите кодирање које систем заиста користи за чување или пренос текста — већина модерних веб API-ја, база података и датотека користи UTF-8, па је број UTF-8 бајтова обично релевантан. Неки старији системи (као што је интерно рад са низовима у Windows/Java) користе UTF-16.

Да ли овај алат исправно броји емоџије?

Да. Многи емоџији су интерно сачувани као пар UTF-16 „сурогат” кодних јединица, које наивне методе бројања броје као 2 карактера. Овај алат исправно броји Unicode кодне тачке, тако да се емоџи броји као 1 карактер, у складу са тим колико карактера особа заправо види.

Да ли је ово исто што и алат Бројач речи?

Не — Бројач речи се фокусира на број речи и реченица за писање. Овај алат се посебно бави величином у бајтовима у односу на број карактера, што је важно за техничка ограничења, а не за захтеве у вези са бројем речи.

Да ли се мој текст негде отпрема?

Не. Бројање се одвија локално у вашем прегледачу помоћу уграђеног JavaScript кодера текста; ништа се не шаље на сервер.