Unicode-normaliseerder
Dezelfde zichtbare tekenreeks kan als verschillende byte-sequenties worden opgeslagen, afhankelijk van of een accent bestaat als één codepunt of als een letter plus een combinerend teken. Deze normaliseerder zet tekst om tussen de vier Unicode-normalisatievormen (NFC, NFD, NFKC, NFKD), zodat uw tekenreeksen schoon vergelijkbaar zijn in databases, zoekindexen, deduplicatiescripts en regex-matches.
Hoe u Unicode-tekst normaliseert
-
1
Plak uw invoer
Voeg de tekenreeks toe: letters met accenten, CJK-tekst, ligaturen, alles wat inconsistent aanvoelt.
-
2
Kies een vorm
Kies NFC (samengesteld, de gebruikelijke webvorm), NFD (ontbonden), NFKC (compatibel samengesteld) of NFKD (compatibel ontbonden).
-
3
Vergelijk de aantallen
De tool meldt het aantal tekens (codepunten) en de bytelengte voor en na, zodat u ziet of de vorm de tekenreeks korter of langer maakte.
-
4
Kopieer de genormaliseerde uitvoer
Gebruik het resultaat in uw database, API-payload, sluggenerator of testfixture.
De vier vormen en wanneer u elke gebruikt
Unicode-normalisatie is gedefinieerd door de standaardbijlage UAX #15. De vier vormen verschillen langs twee assen: canoniek versus compatibiliteit, en samengesteld versus ontbonden.
Referentie naast elkaar
| Vorm | Samenstelling | Toewijzing | Wanneer gebruiken |
|---|---|---|---|
| NFC | Samengesteld | Alleen canoniek | Standaard voor webinhoud, databases, bestandsnamen |
| NFD | Ontbonden | Alleen canoniek | Tekstverwerking die accenten per teken verwijdert |
| NFKC | Samengesteld | Inclusief compat. | Zoeken, identifiers, spamfilters, weergavevouwing |
| NFKD | Ontbonden | Inclusief compat. | Agressieve normalisatie voor het verwijderen van diakritische tekens |
Canonieke vormen behouden de betekenis
Typ é en wissel van vorm. NFC meldt 1 teken en 2 bytes (het enkele codepunt U+00E9), terwijl NFD 2 tekens en 3 bytes meldt (een gewone e gevolgd door een combinerend accent aigu, U+0301). Beide zien er op het scherm identiek uit maar zijn verschillende byte-sequenties, en juist dat verschil lost normalisatie op. Canonieke vormen herschikken alleen de bytes, dus é betekent in beide vormen altijd de letter e met accent aigu.
Wat “compatibiliteit” werkelijk verandert
De K-vormen (NFKC, NFKD) herschrijven ook tekens die verwant lijken maar andere opmaak dragen. Dit gaat met verlies: u krijgt het origineel niet terug. Bijvoorbeeld:
fi(U+FB01, Latijnse kleine ligatuur fi) wordtfi(twee letters)①(U+2460, omcirkeld cijfer één) wordt1㌀(U+3300, het CJK-vierkant “apaato”) wordtアパート- Volledige breedte
A(U+FF21) wordtA
Dat is krachtig voor zoeken en deduplicatie maar destructief voor typografie, dus grijp alleen naar de K-vormen wanneer visuele getrouwheid er niet toe doet.
Een praktische regel
- Bewaar gebruikersinhoud in NFC.
- Vergelijk identifiers in NFC zodat
cafégeschreven als één codepunt encafégeschreven alse+ U+0301 overeenkomen; stap over op NFKC wanneer u ook wilt datfienfi, of volledige-breedteAenA, als gelijk worden vergeleken, zoals de identifierregels in UAX #31 doen. - Maak accentloze slugs door te normaliseren naar NFD en het blok combinerende tekens U+0300 tot U+036F te verwijderen.
Veelgestelde vragen
Meestal betekent het dat uw invoer al in de doelvorm was. Plak tekst die bronnen combineert (een Mac-bestandsnaam, een gekopieerd PDF-fragment, een rij uit een oude database) en u ziet veel eerder het aantal tekens en bytes veranderen.
Voor weergave-URL’s: NFC. Voor slugs waarin u pure ASCII wilt, normaliseer naar NFD, verwijder de combinerende tekens met een regex op U+0300 tot U+036F en zet daarna alles in kleine letters. NFKD is een alternatief wanneer u ook ligaturen en omcirkelde cijfers wilt samenvouwen.
Canonieke vormen (NFC, NFD) veranderen de betekenis nooit, ze herschikken alleen bytes. Compatibiliteitsvormen (NFKC, NFKD) veranderen die wel: ligaturen splitsen, volledige-breedte letters vouwen samen en superscripten worden platgeslagen. Gebruik ze alleen wanneer dat is wat u wilt.
De normalisatie draait op onze server via de PHP-klasse Normalizer en het resultaat komt terug in hetzelfde verzoek; uw tekst wordt niet opgeslagen. We loggen alleen een anonieme gebeurtenis die aangeeft welke vorm is toegepast, nooit de inhoud zelf.
Gerelateerde tools
Anagramgenerator
Voer een kort woord in en bekijk elke unieke herschikking van de letters, zonder dubbele permutaties en met een instelbare resultaatlimiet.
Stadsnamengenerator
Genereer fictieve namen voor steden, plaatsen, dorpen en hoofdsteden voor worldbuilding, kaarten, games, verhalen en mockdata, in een echte taal of een verzonnen stijl.
Instagram-lettertypegenerator
Genereer Unicode-"lettertypen" (vet, cursief, script, monospace, fraktur) die je rechtstreeks in je Instagram-bio, naam, bijschriften en reacties plakt.
Gyaru-tekstconverter
Geef Latijnse tekst vier Unicode-stijlen: volle breedte, omcirkeld, in een kader of wiskundig vet. Voeg spatiëring en versiering toe.
Willekeurige achternaamgenerator
Genereer een reeks willekeurige achternamen uit de meest voorkomende familienamen in de Verenigde Staten. Alleen achternamen, zonder voornaam.
Standard Galactic Alphabet-vertaler
Vertaal Engels naar het Standard Galactic Alphabet, een cijfer in runenstijl uit Commander Keen, de betoveringstafel van Minecraft en Ready Player Two.
Tool beschikbaar in andere talen
- Unicode正規化ツール [JA]
- مُطبِّع Unicode [AR]
- Unicode-normaliserare [SV]
- Unicode-Normalisierer [DE]
- Bộ chuẩn hóa Unicode [VI]
- Normaliseur Unicode [FR]
- 유니코드 정규화기 [KO]
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- Penormal Unicode [ID]
- Normalizator Unicode [PL]
- Normalizador Unicode [ES]
- Normalizador Unicode [PT]
- Нормализатор Unicode [RU]
- Unicode Normalleştirici [TR]
- Unicode 规范化工具 [ZH]
- Unicode Normalizer [EN]
- Normalizzatore Unicode [IT]