Ispettore di caratteri Unicode
Vedi code point, byte UTF-8/UTF-16 ed escape di ogni carattere
Su questo strumento
Incolla qualsiasi testo e guarda ogni carattere sezionato: il suo code point (U+XXXX), i byte UTF-8, le unità UTF-16, la sequenza di escape JavaScript, l’entità HTML e la categoria generale — più i totali per code point, unità UTF-16, byte UTF-8 e caratteri percepiti dall’utente (grapheme cluster).
È lo strumento per i momenti "perché questa stringa è strana?": i caratteri invisibili (zero-width space, BOM, marcatori direzionali) compaiono come righe visibili; i caratteri sosia (а cirillica contro a latina) rivelano code point diversi; e un’emoji che "è un solo carattere" si scopre essere sette code point uniti da zero-width joiner.
I quattro diversi totali di lunghezza rispondono all’eterna domanda del perché la .length di JavaScript, un limite in byte di database e ciò che l’utente vede non sono mai d’accordo su quanto è lunga una stringa.
Domande frequenti
- Perché "🎉".length === 2 in JavaScript?
- Le stringhe JavaScript contano unità di codice UTF-16. I caratteri oltre U+FFFF — inclusa la maggior parte delle emoji — richiedono una coppia surrogata, cioè due unità . L’inspector mostra sia le unità sia il code point reale, e il riepilogo li conta separatamente.
- Cos’è un grapheme cluster?
- Ciò che un lettore percepisce come un solo carattere. é può essere due code point (e + accento combinante), e le emoji di famiglia possono essere sette o più uniti da zero-width joiner. Il conteggio dei grafemi usa Intl.Segmenter del browser — la cosa più vicina ai "caratteri come li vedono gli utenti".
- Come trovo i caratteri invisibili in una stringa?
- Incollala qui — ogni code point ottiene una riga, inclusi zero-width space (U+200B), no-break space (U+00A0), BOM (U+FEFF) e marcatori direzionali, ciascuno etichettato per categoria. Sono i classici colpevoli dietro stringhe "identiche" che falliscono i controlli di uguaglianza.
- Cosa mi dicono le sequenze di byte UTF-8?
- Esattamente ciò che verrà memorizzato o trasmesso: ASCII è un byte, la maggior parte delle estensioni latine due, i CJK tre, le emoji quattro. Se un sistema tronca a metà sequenza ottieni caratteri di sostituzione (�) — la vista dei byte mostra dove cadrebbero quei tagli.