onlinetools.dev

Ispettore di caratteri Unicode

Vedi code point, byte UTF-8/UTF-16 ed escape di ogni carattere

Gira in locale
loading…
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.
Strumenti correlati