Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

215
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda