contacara

¿Qué cambia entre normalización Unicode NFC y NFD?

Palabras de igual apariencia pueden contener secuencias Unicode distintas. NFC y NFD normalizan representaciones canónicamente equivalentes; no significan quitar acentos. Conserva el original y define si importa lectura, comparación o bytes exactos.

Dos representaciones de Caffè

El literal italiano «Caffè» puede terminar en è compuesta o en e más grave combinante. Ambas formas tienen cinco grafemas, pero cinco y seis puntos respectivamente. Pueden no coincidir en una comparación exacta. Revisa códigos antes de corregir; letras incorrectas por mala codificación necesitan revisar bytes originales, no normalización.

Qué significan NFC y NFD

NFC compone donde es posible y NFD descompone canónicamente, según las reglas Unicode. Una forma común permite comparar cadenas equivalentes, no palabras simplemente parecidas. E y È siguen distintas, igual que casa y Casa. Separa normalización, conversión de mayúsculas y limpieza de espacios para entender cada cambio.

È precompuesta U+00E8 y e U+0065 con acento grave U+0300 se ven iguales, pero contienen uno o dos puntos de código.
Formas canónicas de è. En Caffè, la diferencia es un punto de código y un byte. Abrir el JPG a tamaño completo

Cuándo resulta útil

Listas de distintas fuentes pueden necesitar que composiciones equivalentes de acentos coincidan. Guarda texto de presentación y una clave de comparación separada. Acuerda la normalización antes de medir bytes. Contraseñas, firmas, identificadores y archivos de identidad exacta siguen su protocolo; una regla de catálogo no se aplica automáticamente a ellos.

Conserva los acentos significativos

Descomponer y borrar marcas combinantes puede producir otra palabra. Una búsqueda permisiva puede usar esa clave, pero no debe sustituir el texto entregado. En italiano los acentos distinguen palabras y gramática. Ignorar apóstrofos o guiones para comparar tampoco autoriza borrarlos al publicar. Consulta mayúsculas y acentos.

Las formas de compatibilidad requieren otra decisión

La normalización de compatibilidad puede convertir símbolos especiales en secuencias ordinarias. Facilitar coincidencias no justifica aplicarla sin más. Un archivo puede distinguir numeración, símbolos y formas por una razón. Usa esas transformaciones con propósito definido y conserva originales; la clave de deduplicación puede ser más permisiva que la forma publicada.

Repite una prueba mínima

Compara è con e más grave combinante antes y después de NFC. Al principio difieren; después coinciden. Cuenta puntos y bytes para ver el cambio. testo.normalize("NFC") devuelve otra cadena sin borrar manualmente marcas. Si siguen distintas, revisa espacios no separables, invisibles y apóstrofos que NFC no iguala.

Cómo analiza nuestro contador

El contador normaliza a NFC antes de analizar; eso no promete reescribir visiblemente el editor. Ambas formas de Caffè dan cinco caracteres principales, mientras los bytes originales difieren. Texto introducido y representación analizada tienen funciones distintas. Mide además la entrega técnica real en su codificación; consulta caracteres y bytes.

Registra reglas antes de eliminar duplicados

Conserva números de filas inicial y final y revisa eliminaciones. Coincidir después de transformar es una decisión de trabajo, no una propiedad universal del archivo. Un catálogo puede unir formas canónicas manteniendo la primera; un inventario técnico puede conservar ambas. Las reglas de duplicados deben permitir corregir decisiones sin reconstruir datos borrados.

Incluye una prueba que deba seguir distinta

NFC mantiene e y è diferentes. Prueba tanto una pareja que deba unificarse como otra que deba conservarse. Si ambas se funden, la regla es demasiado amplia. Comprende la transformación en vez de parchear excepciones manualmente y vuelve a probar al cambiar herramienta o fuente.

Dos representaciones de una palabra

RepresentaciónGrafemasPuntos de códigoBytes UTF-8
Caffè con è compuesta556
Caffe + U+0300567
NFC556
La normalización canónica conserva el acento de Caffè.

Fuentes y comprobaciones

Abrir la herramienta