CodeKitHub
Teksta rīki

Baitu skaitītājs — rakstzīmju skaits pret izmēru baitos

Pēdējoreiz atjaunināts:

Ierakstiet vai ielīmējiet tekstu un reāllaikā redziet, cik rakstzīmju tas satur salīdzinājumā ar to, cik baitu tas faktiski aizņem UTF-8 un UTF-16 kodējumā — šie divi skaitļi sāk atšķirties, tiklīdz tekstā parādās ne-ASCII rakstzīmes (diakritiskās zīmes, CJK teksts, emocijzīmes).

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

Kas ir šis rīks?

Vienkāršam ASCII tekstam (angļu burtiem, cipariem, pamata pieturzīmēm) rakstzīmju skaits un baitu skaits ir viens un tas pats skaitlis — katra rakstzīme UTF-8 kodējumā aizņem tieši vienu baitu. Tiklīdz tekstā parādās diakritiskie burti, ķīniešu/japāņu/korejiešu rakstzīmes, kirilica, arābu raksts, emocijzīmes vai lielākā daļa citu ne-ASCII rakstzīmju, tas vairs neatbilst patiesībai: viena rakstzīme UTF-8 kodējumā var aizņemt 2, 3 vai 4 baitus, bet UTF-16 kodējumā — 2 vai 4 baitus.

Tam ir nozīme ikreiz, kad sistēmai ir baitu ierobežojums, nevis rakstzīmju ierobežojums — SMS ziņas, datubāzu kolonnu izmēri, API datu apjoma ierobežojumi un dažas sociālās platformas mēra tieši baitos, nevis rakstzīmēs, tāpēc viens un tas pats teksts var nemanāmi pārsniegt limitu atkarībā no valodas vai simboliem, ko tas satur.

Kāpēc to izmantot?

  • Parāda rakstzīmju skaitu, UTF-8 baitus un UTF-16 baitus vienuviet, blakus vienam otram.
  • Pareizi skaita emocijzīmes un citas rakstzīmes ārpus pamata daudzvalodu plaknes (Basic Multilingual Plane) kā vienu rakstzīmi, nevis divas.
  • Atjauninās reāllaikā rakstīšanas gaitā — nav pogas, uz kuras jāklikšķina.
  • Darbojas pilnībā jūsu pārlūkā — bez augšupielādes.
  • Bezmaksas, bez reģistrācijas, bez ierobežojumiem.

Kā to lietot

  1. Ierakstiet vai ielīmējiet tekstu lodziņā.
  2. Zem tā nolasiet rakstzīmju skaitu, UTF-8 baitu skaitu un UTF-16 baitu skaitu — tie atjaunojas rakstīšanas gaitā.

Piemērs

Ievade

Hello, 世界! 🌍

Izvade

12 rakstzīmes, 19 UTF-8 baiti, 26 UTF-16 baiti

ASCII daļa ("Hello, " un "! ") UTF-8 kodējumā aizņem 1 baitu uz rakstzīmi. Katra ķīniešu rakstzīme aizņem 3 baitus, bet emocijzīme — 4 baitus, tāpēc baitu skaits ir manāmi lielāks nekā rakstzīmju skaits.

Biežākie lietojumi

  • Pārbaudīt, vai daudzvalodu produkta apraksts iederēsies datubāzes kolonnā, kas definēta pēc baitu, nevis rakstzīmju garuma.
  • Novērtēt SMS segmentu skaitu, jo SMS tiek rēķinātas un dalītas pēc izmēra baitos, un teksts, kas nav latīņu rakstā, izmanto citu ierobežojumu uz segmentu.
  • Pārliecināties, ka API datu apjoms vai formas lauks pirms iesniegšanas nepārsniedz uz baitiem balstītu izmēra ierobežojumu.
  • Saprast, kāpēc virkni, kas "izskatās īsa", sistēma noraida baitos balstītas garuma pārbaudes dēļ.

Biežāk uzdotie jautājumi

Kāpēc rakstzīmju skaits un baitu skaits nesakrīt?

Unikoda teksts tiek glabāts kā baiti, un tas, cik baitu vajag katrai rakstzīmei, ir atkarīgs no kodējuma un pašas rakstzīmes. UTF-8 kodējumā ASCII rakstzīmes aizņem 1 baitu, lielākā daļa diakritisko latīņu burtu, kā arī kirilicas, grieķu, ivrita un arābu burtu aizņem 2 baitus, lielākā daļa CJK rakstzīmju aizņem 3 baitus, bet emocijzīmes parasti aizņem 4 baitus. Rakstzīmju skaits vienkārši saskaita simbolus, neņemot vērā, kā tie tiek glabāti.

Kuru baitu skaitu izmantot laukam ar baitu ierobežojumu?

Izmantojiet to kodējumu, kuru sistēma faktiski izmanto teksta glabāšanai vai pārraidei — lielākā daļa moderno tīmekļa API, datubāzu un failu izmanto UTF-8, tāpēc parasti aktuāls ir tieši UTF-8 baitu skaits. Dažas vecākas sistēmas (piemēram, iekšēja virkņu apstrāde Windows/Java vidē) izmanto UTF-16.

Vai šis rīks pareizi skaita emocijzīmes?

Jā. Daudzas emocijzīmes iekšēji tiek glabātas kā pāris UTF-16 "surogātu" koda vienību, ko naivas skaitīšanas metodes uzskaita kā 2 rakstzīmes. Šis rīks pareizi skaita Unikoda kodpunktus, tāpēc emocijzīme tiek skaitīta kā 1 rakstzīme, atbilstoši tam, cik rakstzīmes cilvēks patiešām redz.

Vai tas ir tas pats, kas Vārdu skaitītājs?

Nē — Vārdu skaitītājs koncentrējas uz vārdu un teikumu skaitu rakstīšanas vajadzībām. Šis rīks konkrēti pievēršas izmēram baitos salīdzinājumā ar rakstzīmju skaitu, kam ir nozīme tehnisku ierobežojumu, nevis vārdu skaita prasību kontekstā.

Vai mans teksts tiek kaut kur augšupielādēts?

Nē. Skaitīšana notiek lokāli jūsu pārlūkā, izmantojot JavaScript iebūvēto teksta kodētāju; nekas netiek nosūtīts uz serveri.

Saistītie rīki