Praktický príklad
NFKD uplatní kompatibilný rozklad bez opätovného zloženia a odhalí základné znaky a znamienka. Preveďte údaje lokálne v prehliadači. Napríklad vstup "Ahoj ①" dá výsledok "Ahoj 1". Porovnajte obe strany znak po znaku; viditeľný zápis môže skrývať odlišné bajty alebo kombinujúce znamienka. NFKD odhalí kompatibilné časti bez opätovného zloženia. Pomáha pri diagnostike, ale môže odstrániť pôvodné typografické rozdiely.
Ako zápis funguje
Unicode určuje štyri normalizačné tvary. NFC a NFD sú kanonické: zachovávajú kanonickú ekvivalenciu, pritom znaky skladajú alebo rozkladajú podľa pravidiel. NFKC a NFKD navyše používajú kompatibilné mapovania, napríklad menia latinské písmená s plnou šírkou či číslice v krúžku na bežné tvary; niektoré rozdiely sa môžu stratiť. C znamená opätovné zloženie a D rozklad. Normalizovaný výsledok môže vyzerať rovnako, hoci sa zmení postupnosť bodov. Normalizácia pomáha pri presnom porovnávaní a vyhľadávacích indexoch, ale v celom systéme treba používať rovnaký tvar. Nie je univerzálnym bezpečnostným filtrom ani prepisom medzi jazykmi. NFKD uplatní kompatibilný rozklad bez opätovného zloženia a odhalí základné znaky a znamienka.
Textová transformácia má smer. Najprv zistite, či je zdroj čitateľný text Unicode, zoznam bajtov, kódové body alebo už zakódovaný reťazec. Vložte krátku hodnotu so známym významom, pozrite si výsledok a až potom spracujte väčší vstup. Zdroj si ponechajte. Zakódovaný zápis môže byť vratný a pritom odhaliť každý pôvodný bajt komukoľvek, kto pozná formát; samotné kódovanie nechráni súkromie. Výpočet prebieha v tomto prehliadači a vložený obsah neposiela na konverzný server. Výsledok sa však môže stať verejným, ak ho vložíte do zdieľaného dokumentu, hlásenia chyby alebo adresy URL.
Obmedzenia a spoľahlivé použitie
Normalizácia neprekladá jazyk ani neodstráni všetky vizuálne zameniteľné znaky. Kompatibilné tvary môžu zámerne zmeniť rozdiely v texte. Použite presne tú abecedu, kódovanie bajtov a normalizačný tvar, ktoré očakáva prijímací systém. Podobné formáty nemusia byť zameniteľné. Dekódovaný reťazec môže obsahovať značkovanie alebo riadiace znaky a ďalšia aplikácia ho musí považovať za nedôveryhodný vstup. Platný prevod takisto nedokazuje oprávnenosť, bezpečnosť ani vecnú správnosť údajov. Pri vratnom postupe skúste spätný prevod a porovnajte kódové body alebo bajty UTF-8, ak dva reťazce vyzerajú rovnako, no pri presnom porovnaní sa líšia. Pri ukladaných či podpisovaných údajoch zdokumentujte transformáciu v dátovom rozhraní.