Controllo della lunghezza delle stringhe
Controlla la lunghezza di una stringa in caratteri, punti di codice Unicode, unità di codice UTF-16 e byte UTF-8. Imposta una lunghezza minima e massima per verificare se rientra nei limiti e ottieni una copia troncata che non taglia mai un'emoji a metà. Funziona nel browser.
Input
Output
Leggimi
Che cos'è la lunghezza di una stringa?
La lunghezza di una stringa dipende da ciò che si conta. Una persona vede i caratteri, ma i programmi contano i punti di codice, le unità di codice UTF-16 o i byte, e questi numeri spesso differiscono. L'emoji 👍🏽 sembra un solo carattere, ma è composta da 2 punti di codice, 4 unità di codice UTF-16 e 8 byte UTF-8. JavaScript, Java e C# restituiscono la lunghezza in unità di codice UTF-16, i database spesso impongono limiti in byte e i campi dei moduli possono contare le interruzioni di riga come due caratteri.
Descrizione dello strumento
Questo strumento mostra contemporaneamente la lunghezza di una stringa in quattro unità e la verifica rispetto a una lunghezza minima e massima. Usalo per scoprire se un nome utente, un titolo o un valore del database rientra in un limite oppure perché due programmi restituiscono lunghezze diverse per lo stesso testo. Se la stringa è troppo lunga, ottieni una copia troncata che rientra nel limite senza tagliare a metà un carattere.
Funzionalità
- Conta i caratteri, i punti di codice Unicode, le unità di codice UTF-16 e i byte UTF-8
- Verifica la lunghezza rispetto a un minimo e un massimo facoltativi, nell'unità scelta
- Mostra quante unità mancano, restano o superano il limite
- Tronca una stringa troppo lunga senza dividere emoji, bandiere o lettere accentate
- Può ignorare gli spazi bianchi iniziali e finali
- Può contare le interruzioni di riga come CR LF, come avviene nell'invio dei moduli HTML
Come funziona
I caratteri sono cluster di grafemi, ovvero le unità che una persona legge come un singolo carattere, individuati tramite la segmentazione del testo Unicode integrata nel browser. I punti di codice sono i valori Unicode presenti nella stringa. Le unità di codice UTF-16 sono quelle restituite da String.length in JavaScript: i caratteri al di fuori del Piano Multilingue di Base, come la maggior parte delle emoji, occupano due unità. I byte UTF-8 rappresentano la dimensione della stringa codificata in UTF-8. Il troncamento conserva i caratteri interi finché il carattere successivo non farebbe superare il massimo.
Suggerimenti
- Per un limite
VARCHARdi MySQL ovarchardi PostgreSQL, verifica in base ai punti di codice Unicode. Per un limite in byte, ad esempio per una chiave di indice o un campo di un protocollo di rete, verifica in base ai byte UTF-8. - L'attributo
maxlengthdi un elementoinputHTML conta le unità di codice UTF-16, quindi un'emoji può utilizzarne fino a due. - I browser inviano le interruzioni di riga delle aree di testo come CR LF, quindi un server che verifica la lunghezza può contare ogni interruzione di riga due volte. Attiva l'opzione CR LF per ottenere lo stesso risultato.