Vai al contenuto
TextArray
100% locale

Contatore byte UTF-8

Misura la dimensione reale del testo in byte UTF-8, unità UTF-16, punti di codice e grafemi.

Ingresso

Contatore byte UTF-8

Il conteggio dei caratteri e la dimensione dei byte non sono la stessa cosa. In UTF-8, le semplici lettere inglesi occupano un byte ciascuna, ma "é" ne richiede due, la maggior parte dei caratteri CJK ne richiede tre e un'emoji come 👋 ne richiede quattro, quindi un messaggio di 160 caratteri può facilmente essere molto più lungo di 160 byte. Incolla qualsiasi testo e questo contatore segnala la sua esatta dimensione in byte UTF-8, le unità di codice UTF-16 riportate da JavaScript .length, il numero di punti di codice Unicode, il conteggio dei grafemi (caratteri percepiti dall'utente, quindi una famiglia 👨‍👩‍👧 conta come una) e il numero di righe, più la dimensione memorizzata in B, KB o MB per entrambe le codifiche.

Questa suddivisione risponde rapidamente a domande pratiche: questa stringa si adatterà a una colonna VARCHAR(255) misurata in byte, un segmento SMS, un limite di payload di 64 KB, un budget di intestazione HTTP, una quota localStorage? Perché un database si lamenta di una stringa di "160 caratteri" e perché un'emoji conta come due caratteri in un sistema e uno in un altro? Il contatore mostra tutte le definizioni concorrenti di "lunghezza" una accanto all'altra in modo da poter vedere esattamente quale utilizza il tuo limite.

Anche le terminazioni di riga contano per la dimensione dei byte: un file salvato con terminazioni CRLF di Windows è un byte per riga più grande dello stesso file con terminazioni LF Unix. L'opzione delle terminazioni di riga ti consente di misurare il testo come incollato o come verrebbe una volta convertito in LF o CRLF.

Tutto viene calcolato localmente nel tuo browser utilizzando l'API TextEncoder standard: il testo che incolli non viene mai caricato, quindi i file di configurazione, i token e i messaggi privati sono sicuri da misurare.

FAQ

Perché il numero di byte è superiore al numero di caratteri?
UTF-8 è una codifica a larghezza variabile: le lettere ASCII occupano 1 byte, le lettere latine accentate 2, la maggior parte dei caratteri CJK 3 e gli emoji 4. Qualsiasi testo non ASCII è quindi più grande in byte che in caratteri.
Qual è la differenza tra punti di codice e grafemi?
Un punto di codice è un singolo valore Unicode; un grafema è ciò che un lettore vede come un personaggio. Le emoji costruite da diversi punti di codice uniti da ZWJ, o lettere con accenti combinati, sono più punti di codice ma un grafema.
Quale numero utilizza il limite di una colonna del database?
Dipende dalla definizione del database e della colonna: i limiti VARCHAR di MySQL utf8mb4 contano i caratteri mentre molti limiti basati su byte (chiavi Redis, dimensioni degli indici, alcune API) contano byte UTF-8. Questo strumento mostra entrambi in modo da poter verificare quello giusto.
In che modo le terminazioni di riga modificano le dimensioni?
Le terminazioni CRLF di Windows sono due byte per interruzione di riga, le terminazioni LF di Unix uno. Cambia l'opzione di fine riga per vedere la dimensione del testo come verrebbe salvato con entrambe le convenzioni.
Il mio testo è caricato da qualche parte?
No. Il conteggio viene eseguito interamente nel tuo browser con l'API TextEncoder integrata e il tuo testo non lascia mai il tuo dispositivo.