Cos'è la normalizzazione Unicode?

Unicode definisce molteplici modi per rappresentare lo stesso carattere visibile. Ad esempio, il carattere "é" può essere memorizzato come un singolo code point precomposto (U+00E9) oppure come la lettera "e" seguita da un accento acuto combinato (U+0065 U+0301). Entrambi si rendono identicamente ma sono byte-per-byte diversi, il che causa problemi per il confronto di stringhe, la ricerca e l'elaborazione del testo.

La normalizzazione Unicode è il processo di conversione del testo in una rappresentazione canonica in modo che le stringhe equivalenti diventino identiche. Lo Standard Unicode definisce quattro forme di normalizzazione:

  • NFC (Decomposizione Canonica, seguita da Composizione Canonica): Forma precomposta; più compatta, ampiamente utilizzata sul web e nella maggior parte dei sistemi operativi.
  • NFD (Decomposizione Canonica): Forma completamente decomposta; ogni carattere è suddiviso in lettera base più segni combinati.
  • NFKC (Decomposizione di Compatibilità, seguita da Composizione Canonica): Come NFC ma piega anche i caratteri di compatibilità (ad es. legature, apici, varianti a larghezza intera) nei loro equivalenti canonici.
  • NFKD (Decomposizione di Compatibilità): Come NFD ma applica anche la decomposizione di compatibilità.

Descrizione dello strumento

Questo strumento normalizza il testo Unicode da una forma di normalizzazione a un'altra. Seleziona le forme di origine e di destinazione, incolla il tuo testo e l'output convertito appare istantaneamente.

Funzionalità

  • Tutte e quattro le forme di normalizzazione: Supporta NFC, NFD, NFKC e NFKD sia come origine che come destinazione.
  • Conversione bidirezionale: Passa liberamente tra qualsiasi combinazione di forme.
  • Output in tempo reale: Il testo viene normalizzato istantaneamente mentre digiti o incolli.
  • Gestisce qualsiasi script Unicode: Funziona con latino, CJK, arabo, cirillico e qualsiasi altro testo codificato in Unicode.

Come funziona

Lo strumento applica il metodo standard JavaScript String.prototype.normalize() con la forma di destinazione selezionata. Questa è un'implementazione completamente conforme alle specifiche della normalizzazione Unicode come definito in Unicode Standard Annex #15.

Casi d'uso

  • Correzioni del confronto di stringhe: Normalizza il testo prima di confrontarlo o indicizzarlo per assicurarti che le stringhe visivamente identiche corrispondano correttamente.
  • Coerenza della ricerca e del database: Standardizza l'input dell'utente in una singola forma (tipicamente NFC) prima di memorizzarlo in un database per prevenire voci duplicate che differiscono solo nella codifica.
  • Piegatura di compatibilità: Usa NFKC per comprimere legature, apici e caratteri a larghezza intera nei loro equivalenti standard per l'indicizzazione della ricerca o l'elaborazione del linguaggio naturale.