Sări la conținut
TextArray
Complet local

Contor UTF-8 octeți

Măsurați dimensiunea reală a textului în UTF-8 octeți, unități UTF-16, puncte de cod și grafeme.

Intrare

Contor UTF-8 octeți

Numărul de caractere și dimensiunea octeților nu sunt același lucru. În UTF-8, literele în limba engleză simplă iau câte un octet fiecare, dar „é” ia doi, majoritatea caracterelor CJK iau trei, iar un emoji precum 👋 ia patru – așa că un mesaj de 160 de caractere poate avea cu ușurință mult mai mult de 160 de octeți. Lipiți orice text și acest contor raportează dimensiunea exactă de octeți UTF-8, unitățile de cod UTF-16, lungimea JavaScript-ului ar raporta, numărul de puncte de cod Unicode, numărul de grafeme (caracterele percepute de utilizator, deci o familie 👨‍👩‍👧 contează ca una) și numărul de linii MBd, plus pentru ambele linii de stocare sau KBd. codificări.

Această defalcare răspunde rapid la întrebări practice: se va potrivi acest șir într-o coloană VARCHAR(255) măsurată în octeți, un segment SMS, o limită de încărcare utilă de 64 KB, un buget de antet HTTP, o cotă de stocare locală? De ce o bază de date se plânge de un șir de „160 de caractere” și de ce un emoji contează ca două caractere într-un sistem și unul în altul? Contorul arată toate definițiile concurente ale „lungimei” una lângă alta, astfel încât să puteți vedea exact pe care o folosește limita dvs.

Terminațiile de linie contează și pentru dimensiunea octetilor: un fișier salvat cu terminații Windows CRLF este cu un octet pe linie mai mare decât același fișier cu terminații Unix LF. Opțiunea de sfârșit de linie vă permite să măsurați textul așa cum a fost lipit sau așa cum ar fi odată convertit în LF sau CRLF.

Totul este calculat local în browser-ul dvs. utilizând API-ul TextEncoder standard - textul pe care îl lipiți nu este încărcat niciodată, astfel încât fișierele de configurare, jetoanele și mesajele private sunt sigure de măsurat.

FAQ

De ce este numărul de octeți mai mare decât numărul de caractere?
UTF-8 este o codificare cu lățime variabilă: literele ASCII au 1 octet, literele latine accentuate 2, majoritatea caracterelor CJK 3 și emoji 4. Prin urmare, orice text non-ASCII este mai mare în octeți decât în caractere.
Care este diferența dintre punctele de cod și grafeme?
Un punct de cod este o singură valoare Unicode; un grafem este ceea ce un cititor vede ca un singur personaj. Emoji-urile construite din mai multe puncte de cod unite prin ZWJ, sau litere cu accente combinate, sunt mai multe puncte de cod, dar un singur grafem.
Ce număr limitează o coloană a bazei de date?
Depinde de definiția bazei de date și a coloanei — MySQL utf8mb4 VARCHAR limitează caracterele, în timp ce multe limite bazate pe octeți (chei Redis, dimensiuni de index, unele API-uri) numără UTF-8 octeți. Acest instrument le afișează pe ambele, astfel încât să le puteți verifica pe cel potrivit.
Cum modifică sfârșitul rândurilor dimensiunea?
Terminațiile Windows CRLF sunt de doi octeți per ruptură de linie, sfârșiturile Unix LF unul. Comutați opțiunea de sfârșit de rând pentru a vedea dimensiunea textului, așa cum ar fi salvat cu oricare dintre convenții.
Textul meu este încărcat undeva?
Nu. Numărarea rulează în întregime în browser-ul tău cu API-ul TextEncoder încorporat, iar textul tău nu părăsește niciodată dispozitivul tău.