Normalizacja Unicode (NFC, NFD, NFKC, NFKD)
Znormalizuj tekst Unicode do czterech standardowych postaci: NFC, NFD, NFKC i NFKD. Przydatne, gdy „identyczne” napisy nie są równe przy porównywaniu (np. „é” zapisane jednym znakiem vs literą e z osobnym akcentem) albo gdy trzeba ujednolicić znaki zgodności. Wszystko liczy się w Twojej przeglądarce.
Spis treści
Jak działa kalkulator
W Unicode ten sam napis można zapisać na kilka sposobów, np. „é” jako jeden znak albo jako litera „e” z osobnym znakiem akcentu. Dlatego wizualnie identyczne teksty bywają nierówne przy porównywaniu. Normalizacja sprowadza tekst do jednej z czterech kanonicznych postaci, dzięki czemu można je bezpiecznie porównywać, wyszukiwać i przechowywać.
Jak liczymy (metodologia i wzory)
Używamy wbudowanej w przeglądarkę funkcji String.normalize. NFC składa znaki do najkrótszej postaci, NFD rozkłada je na znak bazowy plus znaki łączące. Warianty „K” (NFKC, NFKD) dodatkowo zastępują znaki zgodności ich zwykłymi odpowiednikami (np. ligaturę „fi” na „fi”, indeksy górne na zwykłe cyfry). Pokazujemy też długość każdej postaci w znakach.
Założenia i ograniczenia
- NFKC/NFKD są „stratne” w sensie wyglądu, zamieniają znaki zgodności, więc nie nadają się, gdy chcesz zachować oryginalną typografię.
- Do porównywania i indeksowania zwykle stosuje się NFC.
- Wszystko liczy się lokalnie w przeglądarce.
Źródła i aktualizacja
- Unicode Standard Annex #15, Normalization Forms (dostęp: 18.07.2026)