Normalizzatore Unicode
La stessa stringa visibile può essere memorizzata come sequenze di byte diverse a seconda che un accento esista come un singolo punto codice o come una lettera più un segno combinante. Questo normalizzatore converte il testo tra le quattro forme di normalizzazione Unicode (NFC, NFD, NFKC, NFKD) in modo che le tue stringhe si confrontino in modo pulito in database, indici di ricerca, script di deduplicazione e corrispondenze regex.
Come normalizzare il testo Unicode
-
1
Incolla il tuo input
Inserisci la stringa: lettere accentate, testo CJK, legature, qualsiasi cosa sembri incoerente.
-
2
Scegli una forma
Scegli NFC (composta, la consueta forma web), NFD (decomposta), NFKC (composta di compatibilità) o NFKD (decomposta di compatibilità).
-
3
Confronta i conteggi
Lo strumento indica il numero di caratteri (punti codice) e la lunghezza in byte prima e dopo, così vedi se la forma ha accorciato o allungato la stringa.
-
4
Copia l'output normalizzato
Usa il risultato nel tuo database, nel payload API, nel generatore di slug o in una fixture di test.
Le quattro forme e quando usarle
La normalizzazione Unicode è definita dall’annesso standard UAX #15. Le quattro forme differiscono lungo due assi: canonica rispetto a compatibilità, e composta rispetto a decomposta.
Riferimento affiancato
| Forma | Composizione | Mappatura | Quando usarla |
|---|---|---|---|
| NFC | Composta | Solo canonica | Predefinita per contenuti web, database, nomi file |
| NFD | Decomposta | Solo canonica | Elaborazione del testo che rimuove gli accenti per carattere |
| NFKC | Composta | Include compat. | Ricerca, identificatori, filtri antispam, riduzione per la visualizzazione |
| NFKD | Decomposta | Include compat. | Normalizzazione aggressiva prima di rimuovere i diacritici |
Le forme canoniche conservano il significato
Digita é e cambia forma. NFC indica 1 carattere e 2 byte (il singolo punto codice U+00E9), mentre NFD indica 2 caratteri e 3 byte (una e semplice seguita da un accento acuto combinante, U+0301). I due appaiono identici sullo schermo ma sono sequenze di byte diverse, e proprio questa discrepanza è ciò che la normalizzazione risolve. Le forme canoniche si limitano a riordinare i byte, quindi é in entrambe le forme significa sempre la lettera e con accento acuto.
Cosa cambia davvero la “compatibilità”
Le forme K (NFKC, NFKD) riscrivono anche caratteri che sembrano affini ma portano una formattazione diversa. È un’operazione con perdita: non puoi recuperare l’originale. Ad esempio:
fi(U+FB01, legatura latina minuscola fi) diventafi(due lettere)①(U+2460, cifra uno cerchiata) diventa1㌀(U+3300, il quadrato CJK “apaato”) diventaアパート- La
Aa larghezza piena (U+FF21) diventaA
È potente per la ricerca e la deduplicazione ma distruttivo per la tipografia, quindi ricorri alle forme K solo quando la fedeltà visiva non conta.
Una regola pratica
- Memorizza il contenuto dell’utente in NFC.
- Confronta gli identificatori in NFC affinché
caféscritto come un singolo punto codice ecaféscritto comee+ U+0301 coincidano; passa a NFKC quando vuoi che anchefiefi, oppure laAa larghezza piena eA, risultino uguali, come fanno le regole per gli identificatori di UAX #31. - Produci slug senza accenti normalizzando in NFD ed eliminando il blocco dei segni combinanti da U+0300 a U+036F.
Domande frequenti
Di solito significa che il tuo input era già nella forma di destinazione. Incolla testo che mescola fonti (un nome file Mac, un frammento di PDF copiato, una riga di un database datato) e sarà molto più probabile vedere cambiare i conteggi di caratteri e byte.
Per gli URL di visualizzazione, NFC. Per slug in cui vuoi ASCII puro, normalizza in NFD, rimuovi i segni combinanti con una regex su U+0300 a U+036F, poi metti tutto in minuscolo. NFKD è un’alternativa quando vuoi anche ridurre legature e cifre cerchiate.
Le forme canoniche (NFC, NFD) non cambiano mai il significato, riordinano soltanto i byte. Le forme di compatibilità (NFKC, NFKD) invece lo cambiano: le legature si separano, le lettere a larghezza piena si riducono e gli apici si appiattiscono. Usale solo quando è ciò che desideri.
La normalizzazione avviene sul nostro server tramite la classe Normalizer di PHP e il risultato torna nella stessa richiesta; il tuo testo non viene memorizzato. Registriamo solo un evento anonimo che indica quale forma è stata applicata, mai il contenuto in sé.
Strumenti correlati
Generatore di Font per Instagram
Genera "font" Unicode (grassetto, corsivo, script, monospace, fraktur) da incollare direttamente nella tua bio, nel nome, nelle didascalie e nei commenti su Instagram.
Generatore di Font di Facebook
Trasforma il testo in lettere Unicode in grassetto, corsivo, script e altri stili da copiare in post e commenti di Facebook, nella tua bio e su Messenger.
Simbolo Minore o Uguale
Copia il simbolo ≤ e i simboli di confronto matematico correlati. Include Unicode, entità HTML e markup LaTeX per fogli di calcolo, articoli e pagine web.
Generatore di nomi di città
Genera nomi immaginari di città, cittadine, villaggi e capitali per worldbuilding, mappe, giochi, storie e dati fittizi, con brevi note per ogni risultato.
Traduttore di emoji
Scrivi un testo in inglese e ogni parola dell'elenco integrato riceve un'emoji. Copia il risultato come testo con emoji incorporate.
Validatore di DNI e NIE spagnoli
Controlla nel browser formato e lettera di controllo di un DNI o NIE esistente. Non interroga identità, documenti o registri pubblici.
Strumento disponibile in altre lingue
- Penormal Unicode [ID]
- Normalizator Unicode [PL]
- Unicode-normaliserare [SV]
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- Unicode-Normalisierer [DE]
- Unicode正規化ツール [JA]
- 유니코드 정규화기 [KO]
- Normalizador Unicode [ES]
- Normalizador Unicode [PT]
- Bộ chuẩn hóa Unicode [VI]
- Normaliseur Unicode [FR]
- مُطبِّع Unicode [AR]
- Unicode-normaliseerder [NL]
- Unicode Normalizer [EN]
- Нормализатор Unicode [RU]
- Unicode Normalleştirici [TR]
- Unicode 规范化工具 [ZH]