ForHosting KIT · Outils pour développeurs

Normaliseur Unicode NFKC

file ㎞ ① devient file km 1 : ligatures, lettres pleine chasse, chiffres cerclés et autres variantes de style sont ramenés à du texte simple, puis les accents sont recomposés, si bien que les copies d'un même nom se retrouvent à la recherche. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
file ㎞ ①
Vous obtenez
Résultat
file km 1
Forme
NFKC
Longueur de l'entrée
7
Longueur de la sortie
9

Ce normaliseur Unicode NFKC prend toute chaîne Unicode et renvoie son résultat en Normalization Form KC : décomposition de compatibilité suivie d’une composition canonique selon l’annexe 15 de la norme Unicode. Ce chemin plie les formes de présentation qui paraissent différentes en stockage mais doivent coïncider pour la recherche, l’indexation et les contrôles d’identité : les ligatures fi deviennent f et i simples, les lettres latines pleine chasse deviennent ASCII A–Z, les chiffres cerclés deviennent des nombres ordinaires, les lettres gothiques et mathématiques stylisées se replient vers la base, et des suites comme e plus accent aigu combinant se composent en un seul caractère précomposé lorsqu’il existe. Les développeurs utilisent NFKC pour construire des clés de déduplication, des pipelines de slugs d’URL et la recherche catalogue afin que des variantes de compatibilité visuellement équivalentes n’apparaissent pas comme des enregistrements distincts. Utilisez le parcours gratuit du navigateur pour inspecter les plis avant d’intégrer l’algorithme identique dans l’automatisation.

Ce que fait NFKC et en quoi il diffère de NFC

Unicode définit quatre formes de normalisation. NFC et NFD n’agissent que sur l’équivalence canonique : elles recomposent ou décomposent des caractères que la norme traite comme le même caractère abstrait, par exemple é précomposé face à e plus accent aigu combinant. NFKC et NFKD vont plus loin en appliquant d’abord des correspondances de compatibilité.

Ces correspondances écartent volontairement des distinctions de présentation utiles à la typographie mais pas à l’appariement : la ligature fi d’un seul point de code devient f et i ; chiffres et lettres latines pleine chasse se mappent vers leurs homologues ASCII demi-chasse ; exposants et indices se plient en chiffres ordinaires ; les fractions s’étendent en suites avec barre de fraction ; et de nombreuses formes de lettres encerclées ou stylisées se réduisent vers une base plus simple.

Après cette décomposition de compatibilité, NFKC exécute la même étape de composition que NFC, de sorte que la chaîne finale soit pliée par compatibilité et canoniquement composée. Choisissez NFC lorsque vous devez préserver ligatures et style pleine chasse comme glyphes distincts pour la fidélité d’affichage. Choisissez NFKC lorsque l’égalité, la recherche et le hachage doivent traiter ces variantes comme le même texte.

Cette capacité applique toujours NFKC et étiquette la forme dans la réponse pour que le client ne devine jamais l’algorithme.

Où un normaliseur NFKC apporte de la valeur dans de vrais pipelines

Les systèmes de recherche et de catalogue normalisent titres de produits et noms saisis par l’utilisateur avec NFKC avant l’indexation, afin qu’une marque pleine chasse et sa jumelle ASCII tombent sur le même jeton. Les pipelines de contenu qui génèrent des slugs d’URL appliquent d’abord NFKC pour que ligatures et symboles de compatibilité ne produisent pas ensuite de surprises opaques en encodage percent.

Les tâches de qualité des données comparent les enregistrements après NFKC pour détecter des quasi-doublons qui ne diffèrent que par des variantes Unicode stylisées copiées de PDF ou de documents bureautiques. Les contrôles de sécurité et d’identité normalisent parfois noms d’utilisateur ou libellés avec NFKC avant l’égalité, réduisant des formes de compatibilité ressemblantes qui ne sont pas de vrais attaques homographes mais brisent tout de même les portes de correspondance exacte.

Les ingénieurs de localisation utilisent l’outil gratuit du navigateur sur cette page pour confirmer comment une phrase d’exemple se plie avant d’ancrer la même forme dans des tests d’acceptation.

Déduplication recherche et catalogue

Normalisez titres et noms avec NFKC avant l’indexation pour que ligatures, lettres pleine chasse et chiffres de compatibilité partagent les mêmes clés de recherche.

Pipelines de slugs et d’URL

Pliez les caractères de compatibilité avant de générer le slug pour que l’Unicode stylisé collé depuis le presse-papiers ne produise pas de segments de chemin inattendus.

Qu’est-ce que la normalisation Unicode NFKC ?

NFKC est Normalization Form Compatibility Composition de UAX #15 : décomposition de compatibilité des formes de présentation, puis composition canonique. Elle plie ligatures et caractères stylisés en une chaîne composée stable pour l’appariement et la recherche.

En quoi NFKC diffère-t-il de NFC ?

NFC ne traite que l’équivalence canonique (par exemple composer e plus aigu en é). NFKC applique aussi des mappages de compatibilité tels que fi→fi et pleine chasse A→A avant de composer, ce qui convient mieux à l’égalité et à l’indexation.

En quoi NFKC diffère-t-il de NFKD ?

Les deux appliquent d'abord le même repli de compatibilité. NFKD s'arrête là et laisse les accents en signes séparés, tandis que NFKC les recompose : un e suivi d'un accent aigu combinant devient la lettre é.

Quand vaut-il mieux éviter NFKC ?

Quand les ligatures, les formes pleine chasse ou les lettres stylisées doivent rester visibles telles quelles, par exemple dans un texte mis en page. NFKC efface volontairement ces différences : utilisez NFC pour l'affichage et NFKC pour comparer, rechercher ou dédoublonner.

Que deviennent les lettres pleine chasse et les exposants ?

Ils reprennent leur forme ordinaire : les lettres latines pleine chasse deviennent le A à Z normal, les chiffres en exposant ou en indice des chiffres courants et les fractions se développent en chiffres avec une barre de fraction. Un texte copié d'un PDF correspond alors à ce que l'on tape.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Le endpoint est du parse pur : la même entrée produit toujours la même sortie, sans appels réseau, sans jetons de modèle et sans comportement dépendant de la date. Une validation en échec renvoie invalid_input et n’est pas facturée ; les appels réussis coûtent le prix de base publié $0.002.

Ce que fait NFKC et en quoi il diffère de NFC

Le champ result est la chaîne normalisée ; text renvoie l’entrée ; input_length et output_length indiquent les longueurs JavaScript avant et après ; changed vaut true lorsque la sortie diffère de l’entrée caractère par caractère ; et standard nomme UAX 15 pour aligner documentation et audits sur la spécification Unicode plutôt que sur une table ad hoc.

Contrat d’entrée, forme de réponse et erreurs

Un text manquant échoue avec un message clair de champ absent. Les chaînes vides sont valides et se normalisent en vide avec changed false. Comme l’implémentation utilise le chemin normalize ECMAScript de l’hôte pour la forme NFKC, goldens et production partagent le même mappage déterministe pour chaque scalaire pris en charge par le moteur. Envoyez en POST un objet JSON avec le champ obligatoire text contenant la chaîne Unicode à normaliser. Les alias input, value, s et data sont acceptés pour que formulaires, aides de requête et clients SDK réutilisent des noms familiers sans renommer les colonnes. La valeur doit être une chaîne ; les nombres finis et les booléens sont convertis en forme décimale ou true/false pour les shells de script, tandis que objets, tableaux, un corps null sans champ, NaN et Infinity échouent avec invalid_input et un message qui nomme le problème. Les chaînes de plus de 65536 caractères sont rejetées pour garder la mémoire du Worker prévisible. En cas de succès le corps inclut toujours result, le text renvoyé, form fixé à la chaîne NFKC, input_length, output_length, un booléen changed et une étiquette standard pointant vers la composition de compatibilité Unicode NFKC. Associez ce endpoint à un convertisseur de points de code lorsque vous devez inspecter des jetons U-plus avant et après le pli, ou à des outils de case-folding lorsque la recherche exige à la fois NFKC et l’insensibilité à la casse. Les requêtes invalides ne sont pas facturées ; seules les normalisations réussies consomment le prix unitaire de $0.002.

Où un normaliseur NFKC apporte de la valeur dans de vrais pipelines

Comme la capacité est du parse pur de niveau A, chaque appel réussi coûte $0.002, n’effectue aucun appel réseau sortant et coïncide octet par octet avec le parcours interactif gratuit sur le même module. Gardez les charges sous la limite de longueur, traitez invalid_input comme un bogue client à corriger et non comme une erreur serveur réessayable, et documentez que vous avez choisi NFKC délibérément lorsque NFC, orienté préservation d’affichage, aurait été le mauvais défaut pour l’appariement.

Tests golden d’identité de texte

Épinglez des sorties NFKC pour ligatures, marques combinantes et carrés de compatibilité en CI afin que les bibliothèques ne changent pas le pli en silence.

Quelle entrée le normaliseur Unicode NFKC accepte-t-il ?

Envoyez un objet JSON avec le champ chaîne obligatoire text (alias input, value, s, data). Text manquant, objets/tableaux non chaîne, nombres non finis et chaînes de plus de 65536 caractères renvoient invalid_input.

Que contient la réponse ?

result est la chaîne NFKC ; text renvoie l’entrée ; form est toujours NFKC ; input_length et output_length sont des longueurs de caractères ; changed vaut true si la normalisation a modifié la chaîne ; standard nomme UAX #15.

Combien coûte le normaliseur Unicode NFKC ?

L’outil navigateur est gratuit. Les requêtes API utilisent le solde KIT prépayé à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.

Consulter la documentation complète du KIT →