Normalizador Unicode
Pega texto para convertirlo a cualquiera de las cuatro formas de normalización Unicode y ver exactamente qué caracteres cambiaron, con sus puntos de código antes y después. Usa NFC para almacenar y comparar, o NFKC para unificar caracteres de compatibilidad parecidos como fi, ① y Hello de ancho completo.
Última actualización:
Comparar las cuatro formas
Caracteres cambiados
Cómo usar Normalizador Unicode
- Pega tu texto en el cuadro de entrada o carga el ejemplo para ver casos típicos.
- Elige una forma: NFC (la más común), NFD, NFKC o NFKD.
- Marca las opciones adicionales si también quieres quitar tildes, caracteres invisibles o espacios especiales.
- Revisa la tabla de cambios para ver qué puntos de código cambiaron y por qué.
- Copia o descarga el texto normalizado, o cópialo como secuencias \u escapadas para código.
Cómo tratan las cuatro formas los caracteres comunes
| Entrada | Puntos de código | NFC | NFD | NFKC | NFKD |
|---|---|---|---|---|---|
| é (precompuesta) | U+00E9 | é | e + U+0301 | é | e + U+0301 |
| e + ◌́ (combinable) | U+0065 U+0301 | é (U+00E9) | sin cambios | é (U+00E9) | sin cambios |
| Å signo de ángstrom | U+212B | Å (U+00C5) | A + U+030A | Å (U+00C5) | A + U+030A |
| Ω signo de ohmio | U+2126 | Ω (U+03A9) | Ω (U+03A9) | Ω (U+03A9) | Ω (U+03A9) |
| fi ligadura | U+FB01 | sin cambios | sin cambios | fi | fi |
| A de ancho completo | U+FF21 | sin cambios | sin cambios | A | A |
| Superíndice ² | U+00B2 | sin cambios | sin cambios | 2 | 2 |
| En círculo ① | U+2460 | sin cambios | sin cambios | 1 | 1 |
| ½ fracción vulgar | U+00BD | sin cambios | sin cambios | 1⁄2 (con U+2044) | 1⁄2 |
| ™ marca comercial | U+2122 | sin cambios | sin cambios | TM | TM |
| Espacio de no separación | U+00A0 | sin cambios | sin cambios | espacio U+0020 | espacio U+0020 |
| 각 sílaba hangul | U+AC01 | 각 | 3 jamo U+1100 U+1161 U+11A8 | 각 | 3 jamo |
NFC y NFD solo hacen cambios canónicos: el texto significa exactamente lo mismo. NFKC y NFKD también aplican asignaciones de compatibilidad, que pueden cambiar el aspecto y perder información.
Cuándo importa la normalización
- Comparación de cadenas y eliminación de duplicados: "Café" escrito en un Mac y "Café" pegado desde un PDF pueden diferir byte a byte. Normaliza ambos a NFC antes de compararlos o calcular su hash.
- Búsqueda: normaliza el índice y la consulta de la misma forma. NFKC más el plegado de mayúsculas hace que se puedan encontrar las letras de ancho completo, las ligaduras y las letras estilizadas.
- Nombres de archivo: algunos sistemas de archivos guardan los nombres descompuestos (cerca de NFD) mientras que otros conservan lo que escribiste, lo que puede crear aparentes duplicados al sincronizar archivos.
- Nombres de usuario e identificadores: NFKC unifica muchos caracteres parecidos, lo que reduce la suplantación. No detecta todos los caracteres confundibles (la а cirílica y la a latina siguen siendo distintas).
- Bases de datos y API: normaliza en el punto de entrada (cuando llegan los datos) para que todo lo almacenado esté en una sola forma.
Normalización en código
| Lenguaje | Ejemplo NFC |
|---|---|
| JavaScript | str.normalize('NFC') |
| Python | unicodedata.normalize('NFC', s) |
| Java | Normalizer.normalize(s, Normalizer.Form.NFC) |
| C# / .NET | s.Normalize(NormalizationForm.FormC) |
| PHP (intl) | Normalizer::normalize($s, Normalizer::FORM_C) |
| Go | norm.NFC.String(s) (golang.org/x/text/unicode/norm) |
Preguntas frecuentes
¿Qué es la normalización Unicode?
Unicode a menudo tiene más de una forma de escribir el mismo texto visible. Por ejemplo, é puede ser un solo punto de código (U+00E9) o una e seguida de un acento agudo combinable (U+0065 U+0301). La normalización convierte el texto a una forma acordada para que las cadenas que se ven iguales también se comparen como iguales, se ordenen de forma coherente y se puedan buscar de forma fiable.
¿Cuál es la diferencia entre NFC, NFD, NFKC y NFKD?
NFD descompone los caracteres en letras base más marcas combinables; NFC los descompone y luego los recompone en caracteres precompuestos cuando es posible. Ambas solo hacen cambios canónicos que nunca alteran el significado. NFKD y NFKC aplican además asignaciones de compatibilidad, que convierten variantes de formato en caracteres simples: la ligadura fi pasa a ser f + i, ① pasa a ser 1, x² pasa a ser x2 y la H de ancho completo pasa a ser H.
¿Qué forma de normalización debo usar?
NFC es la elección habitual para almacenar e intercambiar texto y es la que recomienda el W3C para la web; la mayor parte del texto ya está en NFC. Usa NFD cuando necesites trabajar con los acentos por separado, por ejemplo para quitarlos. Usa NFKC para búsquedas, nombres de usuario e identificadores, donde quieres que coincidan las variantes parecidas, pero conserva el texto original para mostrarlo, porque NFKC puede perder significado de formato, como los superíndices.
¿La normalización NFKC es reversible?
No. La normalización de compatibilidad elimina la distinción entre variantes, así que después de NFKC no puedes saber si un 2 era originalmente ² o ②. Las formas canónicas (NFC y NFD) son reversibles entre sí: convertir NFC a NFD y volver da el mismo texto NFC.
¿Por qué mi texto se alarga en NFD?
NFD divide las letras precompuestas en una letra base más una o más marcas combinables, así que é (1 punto de código, 2 bytes UTF-8) pasa a ser e + ◌́ (2 puntos de código, 3 bytes UTF-8). Las sílabas hangul coreanas se descomponen en 2 o 3 jamo cada una. La tabla comparativa muestra el número de puntos de código y bytes de cada forma.
¿La normalización quita los acentos?
No. La normalización conserva los acentos; NFD solo los separa de la letra. Para quitarlos, descompón a NFD y elimina las marcas combinables, que es lo que hace la opción 'Quitar también las tildes'. Las letras que no están formadas por una letra base más un acento, como ø, ł o ß, no cambian con esto.
¿La normalización quita los caracteres de ancho cero o invisibles?
No. Los espacios de ancho cero, los unidores de ancho cero, los guiones suaves y las marcas de orden de bytes sobreviven a las cuatro formas. Usa la opción 'Quitar también los caracteres invisibles' para eliminarlos, pero ten cuidado con los emoji: los unidores de ancho cero mantienen unidos los emoji de varias personas y de familias.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.