Normalizzatore Unicode NFKC
file ㎞ ① diventa file km 1: legature, lettere a larghezza piena, cifre cerchiate e altre varianti di stile tornano testo semplice, poi gli accenti vengono ricomposti, così le copie dello stesso nome coincidono nella ricerca. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- file ㎞ ①
- Risultato
- file km 1
- Forma
- NFKC
- Lunghezza dell'input
- 7
- Lunghezza dell'output
- 9
Questo normalizzatore Unicode NFKC accetta qualsiasi stringa Unicode e restituisce il risultato in Normalization Form KC: decomposizione di compatibilità seguita da composizione canonica secondo l’Allegato 15 dello standard Unicode. Quel percorso piega forme di presentazione che appaiono diverse in archiviazione ma devono coincidere per ricerca, indicizzazione e controlli di identità: le legature fi diventano f e i semplici, le lettere latine fullwidth diventano ASCII A–Z, le cifre cerchiate diventano numeri ordinari, le lettere gotiche e matematiche stilizzate collassano verso la base, e sequenze come e più accento acuto combinante si compongono in un unico carattere precomposto quando esiste. Gli sviluppatori usano NFKC per costruire chiavi di deduplicazione, pipeline di slug URL e ricerca di catalogo così che varianti di compatibilità visivamente equivalenti non compaiano come record separati. Usi il percorso gratuito del browser per ispezionare le pieghe prima di integrare l’algoritmo identico nell’automazione.
Cosa fa NFKC e come differisce da NFC
Unicode definisce quattro forme di normalizzazione. NFC e NFD operano solo sull’equivalenza canonica: ricompongono o decompongono caratteri che lo standard tratta come lo stesso carattere astratto, ad esempio é precomposto rispetto a e più accento acuto combinante. NFKC e NFKD vanno oltre applicando prima le mappature di compatibilità.
Tali mappature scartano di proposito distinzioni di presentazione utili alla tipografia ma non all’abbinamento: la legatura fi di un solo code point diventa f e i; cifre e lettere latine fullwidth si mappano sulle controparti ASCII halfwidth; apici e pedici si piegano in cifre ordinarie; le frazioni si espandono in sequenze con barra di frazione; e molte forme di lettera racchiuse o stilizzate si riducono verso una base più semplice.
Dopo quella decomposizione di compatibilità, NFKC esegue lo stesso passo di composizione di NFC, così la stringa finale risulta piegata per compatibilità e canonicamente composta. Scelga NFC quando deve preservare legature e stile fullwidth come glifi distinti per fedeltà di visualizzazione. Scelga NFKC quando uguaglianza, ricerca e hashing devono trattare quelle varianti come lo stesso testo.
Questa capacità applica sempre NFKC ed etichetta la forma nella risposta affinché il client non indovini l’algoritmo.
Dove un normalizzatore NFKC crea valore in pipeline reali
I sistemi di ricerca e catalogo normalizzano titoli di prodotto e nomi inseriti dall’utente con NFKC prima dell’indicizzazione, così che un marchio fullwidth e il suo gemello ASCII cadano sullo stesso token. Le pipeline di contenuti che generano slug URL applicano prima NFKC affinché legature e simboli di compatibilità non producano in seguito sorprese opache con codifica percent. I job di qualità dei dati confrontano i record dopo NFKC per individuare quasi-duplicati che differiscono solo per varianti Unicode stilizzate copiate da PDF o documenti office.
I controlli di sicurezza e identità a volte normalizzano nomi utente o etichette con NFKC prima dell’uguaglianza, riducendo forme di compatibilità simili che non sono veri attacchi omografi ma rompono comunque i gate di corrispondenza esatta. Gli ingegneri di localizzazione usano lo strumento gratuito del browser in questa pagina per confermare come si piega una frase di esempio prima di fissare la stessa forma nei test di accettazione.
Casi d'uso
Deduplicazione in ricerca e catalogo
Normalizzi titoli e nomi con NFKC prima dell’indicizzazione affinché legature, lettere fullwidth e cifre di compatibilità condividano le stesse chiavi di ricerca.
Pipeline di slug e URL
Pieghi i caratteri di compatibilità prima di generare lo slug affinché Unicode stilizzato incollato dagli appunti non produca segmenti di percorso imprevisti.
Domande frequenti
Cos’è la normalizzazione Unicode NFKC?
NFKC è Normalization Form Compatibility Composition di UAX #15: decomposizione di compatibilità delle forme di presentazione e poi composizione canonica. Piega legature e caratteri stilizzati in una stringa composta stabile per abbinamento e ricerca.
In che modo NFKC differisce da NFC?
NFC gestisce solo l’equivalenza canonica (ad esempio comporre e più acuto in é). NFKC applica anche mappature di compatibilità come fi→fi e fullwidth A→A prima di comporre, il che è meglio per uguaglianza e indicizzazione.
Che differenza c'è tra NFKC e NFKD?
Entrambe applicano prima lo stesso ripiegamento di compatibilità. NFKD si ferma lì e lascia gli accenti come segni separati, mentre NFKC li ricompone, quindi una e seguita da un accento acuto combinante diventa la lettera é.
Quando conviene non usare NFKC?
Quando legature, forme a larghezza piena o lettere stilizzate devono restare visibili come sono, per esempio in un testo impaginato. NFKC elimina apposta queste differenze: usi NFC per la visualizzazione e NFKC per confrontare, cercare o trovare doppioni.
Cosa succede alle lettere a larghezza piena e agli apici?
Tornano alla forma comune: le lettere latine a larghezza piena diventano la normale A–Z, le cifre in apice o pedice diventano cifre comuni e le frazioni si espandono in cifre con barra di frazione. Così un testo copiato da un PDF coincide con ciò che si digita.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/unicode-nfkc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"file ㎞ ①"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-nfkc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "file ㎞ ①"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/unicode-nfkc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "file ㎞ ①"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/unicode-nfkc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"file ㎞ ①"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"file ㎞ ①"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/unicode-nfkc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "file ㎞ ①"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.unicode_nfkc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L’endpoint è lavoro parse puro: lo stesso input produce sempre lo stesso output, senza chiamate di rete, senza token di modello e senza comportamento dipendente dalla data. Una validazione fallita restituisce invalid_input e non viene addebitata; le chiamate riuscite costano il prezzo base pubblicato $0.002.
Cosa fa NFKC e come differisce da NFC
Il campo result è la stringa normalizzata; text ripete l’input; input_length e output_length riportano le lunghezze JavaScript prima e dopo; changed è true quando l’output differisce dall’input carattere per carattere; e standard nomina UAX 15 per allineare documentazione e audit alla specifica Unicode e non a una tabella ad hoc.
Contratto di ingresso, forma della risposta ed errori
La mancanza di text fallisce con un messaggio chiaro di campo assente. Le stringhe vuote sono valide e si normalizzano a vuoto con changed false. Invii con POST un oggetto JSON con il campo obbligatorio text contenente la stringa Unicode da normalizzare. Sono accettati gli alias input, value, s e data così che moduli, helper di query e client SDK riutilizzino nomi familiari senza rinominare colonne. Il valore deve essere una stringa; numeri finiti e booleani sono convertiti nella forma decimale o true/false per comodità negli shell di scripting, mentre oggetti, array, un corpo null senza campo, NaN e Infinity falliscono con invalid_input e un messaggio che nomina il problema. Stringhe più lunghe di 65536 caratteri sono rifiutate per mantenere prevedibile la memoria del Worker. In caso di successo il corpo include sempre result, il text eco, form fissato alla stringa NFKC, input_length, output_length, un booleano changed e un’etichetta standard che punta alla composizione di compatibilità Unicode NFKC. Abbini questo endpoint a un convertitore di code point quando deve ispezionare token U-plus prima e dopo la piega, o a strumenti di case-folding quando la ricerca richiede sia NFKC sia l’insensibilità al maiuscolo/minuscolo. Le richieste non valide non sono addebitate; solo le normalizzazioni riuscite consumano il prezzo per voce di $0.002.
Dove un normalizzatore NFKC crea valore in pipeline reali
Poiché la capacità è parse puro di livello A, ogni chiamata riuscita costa $0.002, non esce in rete e coincide byte per byte con il percorso interattivo gratuito sullo stesso modulo. Mantenga i payload sotto il limite di lunghezza, tratti invalid_input come un bug del client da correggere e non come un errore server ritentabile, e documenti di aver scelto NFKC di proposito quando NFC, orientato a preservare la visualizzazione, sarebbe stato l’impostazione predefinita sbagliata per l’abbinamento.
Casi di integrazione
Test golden di identità del testo
Fissi uscite NFKC per legature, segni combinanti e quadrati di compatibilità in CI così che le librerie non cambino la piega in silenzio.
Domande tecniche
Quale input accetta il normalizzatore Unicode NFKC?
Invii un oggetto JSON con il campo stringa obbligatorio text (alias input, value, s, data). Text assente, oggetti/array non stringa, numeri non finiti e stringhe oltre 65536 caratteri restituiscono invalid_input.
Cosa include la risposta?
result è la stringa NFKC; text ripete l’input; form è sempre NFKC; input_length e output_length sono lunghezze in caratteri; changed è true se la normalizzazione ha alterato la stringa; standard nomina UAX #15.
Quanto costa il normalizzatore Unicode NFKC?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo KIT prepagato a $0.002 per chiamata riuscita; l’input non valido non viene addebitato.