Vad är Unicode-normalisering?

Unicode definierar flera sätt att representera samma synliga tecken. Till exempel kan tecknet "é" lagras som en enda förkompositerad kodpunkt (U+00E9) eller som bokstaven "e" följd av en kombinerad akut accent (U+0065 U+0301). Båda återges identiskt men är byte-för-byte olika, vilket orsakar problem för strängjämförelse, sökning och textbehandling.

Unicode-normalisering är processen att konvertera text till en kanonisk representation så att motsvarande strängar blir identiska. Unicode-standarden definierar fyra normaliseringsformer:

  • NFC (Kanonisk dekomposition följd av kanonisk komposition): Förkompositerad form; mest kompakt, allmänt använd på webben och i de flesta operativsystem.
  • NFD (Kanonisk dekomposition): Helt dekomponerad form; varje tecken är uppdelat i basbokstav plus kombinerade märken.
  • NFKC (Kompatibilitetsdekomposition följd av kanonisk komposition): Som NFC men viker också kompatibilitetstecken (t.ex. ligaturer, upphöjda siffror, helbreddsvarianter) in i sina kanoniska motsvarigheter.
  • NFKD (Kompatibilitetsdekomposition): Som NFD men tillämpar också kompatibilitetsdekomposition.

Verktygsbeskrivning

Det här verktyget normaliserar Unicode-text från en normaliseringsform till en annan. Välj käll- och målformer, klistra in din text, och den konverterade utmatningen visas omedelbar.

Funktioner

  • Alla fyra normaliseringsformer: Stöder NFC, NFD, NFKC och NFKD som både källa och mål.
  • Dubbelriktad konvertering: Växla mellan valfri kombination av former fritt.
  • Realtidsutmatning: Text normaliseras omedelbar när du skriver eller klistrar in.
  • Hanterar alla Unicode-skript: Fungerar med Latin, CJK, arabiska, kyrilliska och all annan Unicode-kodad text.

Hur det fungerar

Verktyget tillämpar standard-JavaScript-metoden String.prototype.normalize() med den valda målformen. Detta är en helt specifikationskompatibel implementering av Unicode-normalisering enligt Unicode Standard Annex #15.

Användningsfall

  • Strängsjämförelsekorrigeringar: Normalisera text innan du jämför eller indexerar den för att säkerställa att visuellt identiska strängar matchar korrekt.
  • Sök- och databaskonsistens: Standardisera användarinmatning till en enda form (vanligtvis NFC) innan du lagrar den i en databas för att förhindra dubblettransaktioner som skiljer sig endast i kodning.
  • Kompatibilitetsveckning: Använd NFKC för att sammanfatta ligaturer, upphöjda siffror och helbreddstecken till deras standardekvivalenter för sökindexering eller naturlig språkbehandling.