Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

205
Vistas
¿En qué casos funciona el método normalizar ('NFKC')?

Intenté usar el método normalize('NFKC') con diferentes caracteres, pero no funcionó. Afortunadamente, no puedo decir esto de NFC . Cuando es posible, normalize('NFC') siempre reemplaza múltiples puntos de código con uno solo. Por ejemplo:

 let t1 = `\u00F4`; //ô let t2 = `\u006F\u0302`; //ô console.log(t2.normalize('NFC') == t1); //true

Y aquí hay un ejemplo con NFKC que nunca funciona:

 let s1 = '\uFB00'; //"ff" let s2 = '\u0066\u0066'; //"ff" console.log(s2.normalize('NFKC') == s1); //false

Pensé antes que NFKC reemplaza múltiples puntos de código con el único que representa un carácter compatible. En pocas palabras, pensé que NFKC reemplazaría \u0066\u0066 con \uFB00 .

Si NFKC no funciona así, entonces... ¿cómo funciona?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La cuestión es que NFKC (así como NFKD ) admite normalización compatible y canónicamente equivalente.

Unicode

El tipo de descomposición completa elegido depende de la forma de normalización Unicode involucrada. Para NFC o NFD, uno hace una descomposición canónica completa, que utiliza solo valores canónicos de Decomposition_Mapping. Para NFKC o NFKD, se realiza una descomposición de compatibilidad completa, que utiliza valores de Decomposition_Mapping canónicos y de compatibilidad.

Y eso es completamente comprensible porque como dice MDN :

Todas las secuencias canónicamente equivalentes también son compatibles, pero no al revés.

Pero también vale la pena notar que NFKC hace normalizaciones compatibles y canónicamente equivalentes de diferentes maneras. La normalización canónicamente equivalente por NFKC se produce de la misma manera que NFC . Por ejemplo:

 //"ô" (U+00F4) -> "a" (U+006F) + " ̂" (U+0302) -> "â" (U+00F4) let c1 = `\u006F\u0302`; //ô console.log(c1.normalize('NFKC').length); //1

Pero la normalización compatible por este parámetro funciona de manera diferente. La especificación dice:

El formulario de normalización KC no intenta asignar secuencias de caracteres a compuestos de compatibilidad. Por ejemplo, una composición de compatibilidad de “oficina” no produce “o\uFB03ce”, aunque “\uFB03” es un carácter que es el equivalente de compatibilidad de la secuencia de tres caracteres “ffi”. En otras palabras, la fase de composición de NFC y NFKC es la misma; solo difiere su fase de descomposición, y NFKC aplica descomposiciones de compatibilidad.

Por ejemplo:

 //"ff"(U+FB00) -> "f"(U+0066) + "i"(U+0066) -> "f"(U+0066) + "i"(U+0066) let c2 = '\u0066\u0066'; //ff console.log(c2.normalize('NFKC').length); //2

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda