ForHosting KIT · Utilidades de desarrollo

Normalizador Unicode NFKD

file ① café pasa a file 1 café con el acento separado: las ligaduras se abren en letras sueltas, los dígitos en círculo pasan a números normales y las letras acentuadas se dividen en base y marca, sin recomponer nada después. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Texto
file ① café
Obtiene
Resultado
file 1 café
Forma
NFKD
Longitud de entrada
10
Longitud del resultado
12

El texto Unicode a menudo codifica los mismos caracteres abstractos de varias formas: una ligadura, una letra precompuesta con acento, un dígito en círculo o una base más marcas combinantes. Los motores de búsqueda, las bases de datos y los filtros de seguridad necesitan una forma estable para que file y file coincidan, café y café se comparen iguales tras la descomposición, y ① no oculte un dígito. La forma de normalización Unicode KD (NFKD) aplica la descomposición de compatibilidad: expande ligaduras, elimina diferencias solo de presentación y separa secuencias combinantes sin recomponerlas. Esta capacidad acepta cualquier cadena, ejecuta el algoritmo NFKD estándar y devuelve el resultado normalizado con estadísticas de longitud y puntos de código, más un booleano que indica si algo cambió.

Qué hace NFKD y cómo se diferencia de NFC, NFD y NFKC

La forma de normalización Unicode KD, definida en el Anexo 15 del estándar Unicode, es la descomposición de compatibilidad. A diferencia de NFD, que solo aplica descomposiciones canónicas como separar una é precompuesta en e más acento agudo combinante, NFKD también aplica mapeos de compatibilidad que eliminan distinciones de formato y presentación no esenciales para muchas tareas de coincidencia. Las ligaduras como el carácter único fi pasan a las letras f e i; la ligadura doble ff pasa a f f; la triple ffi a f f i.

Los números en círculo, los dígitos de ancho completo, los superíndices y caracteres de compatibilidad similares se expanden a sus equivalentes simples. Las secuencias combinantes canónicas siguen en orden descompuesto, de modo que café puede quedar como cafe seguido de un acento agudo combinante sobre la e. NFKD no recompone a propósito: esa recomposición corresponde a NFKC.

Elija NFKD cuando desee el máximo desdoblamiento para indexación, comparación difusa o eliminación de formas de presentación antes de otro procesamiento. Elija NFC cuando prefiera una forma compuesta compacta para almacenamiento y visualización. Este extremo siempre devuelve form NFKD para que los clientes no deban adivinar el algoritmo.

La implementación usa el método nativo String normalize del lenguaje anfitrión, que sigue UAX 15 y es plenamente determinista en motores JavaScript modernos.

Dónde aparece la normalización Unicode NFKD en el trabajo real

Los sistemas de búsqueda y catálogo normalizan títulos de producto y etiquetas visibles para que la tipografía con ligaduras de las herramientas de diseño no cree claves duplicadas: final y final coinciden tras NFKD. Los ingenieros de localización comparan cadenas de usuario tras la descomposición de compatibilidad al buscar homógrafos confusos o al verificar que una forma de visualización es solo azúcar de presentación sobre letras simples.

Las canalizaciones de seguridad e identidad suelen aplicar NFKD o NFKC antes de un hash o una igualdad para que grafías Unicode alternativas del mismo nombre abstracto no eludan listas de permiso. Los cursos de programación enseñan codificación mostrando que un carácter visible puede mapearse a varios escalares tras la descomposición; una página dedicada a NFKD atiende mejor esa intención de búsqueda que ocultarla bajo Base64 o convertidores de puntos de código.

Los escritorios de soporte pegan símbolos raros de tickets y necesitan una forma desdoblada autorizada para la reproducción en ingeniería. Si necesita listas U-plus de puntos de código, entidades HTML o reparación mojibake UTF-8, trátelos como intenciones y páginas distintas, sin sobrecargar esta página del normalizador Unicode NFKD.

Plegado de claves en búsqueda y catálogo

Normalice títulos y etiquetas de producto con NFKD para que ligaduras y dígitos en círculo no creen claves de índice duplicadas junto a sus equivalentes en texto plano.

Comparación de identidad y seguridad

Descomponga por compatibilidad nombres de usuario y tokens antes de igualdad o hash para que variantes de presentación no eludan filtros que esperan formas ASCII-amigables.

¿Qué es Unicode NFKD?

NFKD es la forma de normalización KD del Anexo 15 del estándar Unicode: descomposición de compatibilidad completa. Despliega ligaduras y caracteres de compatibilidad y separa marcas combinantes, sin recomponerlas.

¿En qué se diferencia NFKD de NFKC?

Ambas aplican descomposición de compatibilidad. NFKC luego recompone cuando es posible en caracteres compuestos. Esta herramienta devuelve solo NFKD (forma descompuesta, sin recomposición).

¿file se convierte en file?

Sí. La ligadura fi U+FB01 es un carácter de compatibilidad; NFKD la mapea a f + i, de modo que file se normaliza a file con changed en true.

¿Qué ocurre con una entrada inválida?

Se rechazan text ausente, objetos no cadena, números no finitos y cadenas demasiado largas, con un mensaje claro. Los fallos de validación no se cobran.

¿Cuánto cuesta?

La herramienta del navegador es gratuita y se ejecuta en local.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/enc/unicode-nfkd

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/enc/unicode-nfkd \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"file ① café"}'
{
  "text": "file ① café"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.unicode_nfkd",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

La entrada inválida o ausente falla con invalid_input para que las cargas incorrectas no inventen texto. La herramienta gratuita del navegador y la API de pago comparten el mismo módulo puro, de modo que las demostraciones, los flujos de localización y los webhooks de producción siempre coinciden.

Contrato de entrada, campos de respuesta y comportamiento de error

Las cadenas vacías son válidas y devuelven un resultado NFKD vacío con changed en false. Las cadenas de más de sesenta y cinco mil quinientas treinta y seis unidades de código UTF-16 fallan para que un pegado descontrolado no agote el worker. Si falta text, falla de inmediato sin facturar. Envíe un objeto JSON con un campo de cadena obligatorio llamado text. Se aceptan los alias input, value, s y data cuando falta text, como en otras herramientas de codificación. Los números y booleanos se convierten a su forma decimal o a true o false; objetos, matrices, null, NaN e Infinity se rechazan con invalid_input indicando el problema. En caso de éxito el cuerpo repite el text original, ofrece result como la cadena normalizada NFKD, fija form en la constante NFKD, pone changed en true cuando result difiere de text, informa input_length y result_length como recuentos de unidades UTF-16, informa input_code_points y result_code_points como recuentos de escalares Unicode para no malcontar emoji ni caracteres fuera del BMP, e incluye una etiqueta breve del estándar que apunta a UAX 15. Ejemplo: la palabra con ligadura file pasa a file con changed true y un result_length mayor porque una unidad se convirtió en cuatro. El precio de las llamadas API correctas es la base publicada de $0.002 por ítem; los fallos de validación no consumen saldo prepago.

Dónde aparece la normalización Unicode NFKD en el trabajo real

Como esta capacidad es un motor parse puro, el precio API es la base publicada de $0.002 por ítem correcto y la validación fallida no consume saldo.

Fixtures de localización y docencia

Genere cadenas descompuestas estables para pruebas golden, cobertura de glifos y demostraciones en aula de los mapeos de compatibilidad de UAX #15.

Ver la documentación completa del KIT →