Mikä on Unicode-normalisointi?

Unicode määrittelee useita tapoja esittää samaa näkyvää merkkiä. Esimerkiksi merkki "é" voidaan tallentaa yksittäisenä valmiiksi yhdistetynä koodipisteinä (U+00E9) tai kirjaimena "e" seuraavana yhdistävänä akuuttina (U+0065 U+0301). Molemmat näyttävät identtisiltä, mutta ovat tavutasolla erilaiset, mikä aiheuttaa ongelmia merkkijonojen vertailussa, haussa ja tekstin käsittelyssa.

Unicode-normalisointi on prosessi, jossa teksti muunnetaan kanoniseen muotoon, jotta vastaavat merkkijonot muuttuvat identtisiksi. Unicode-standardi määrittelee neljä normalisointimuotoa:

  • NFC (Canonical Decomposition, jota seuraa Canonical Composition): Valmiiksi yhdistetty muoto; kompaktin muoto, jota käytetään laajalti verkossa ja useimmissa käyttöjärjestelmissä.
  • NFD (Canonical Decomposition): Täysin hajotettu muoto; jokainen merkki jaetaan peruskirjaimeen ja yhdistäviin merkkeihin.
  • NFKC (Compatibility Decomposition, jota seuraa Canonical Composition): Kuten NFC, mutta myös taittaa yhteensopivuusmerkit (esim. ligatuurit, yläindeksit, täyslevyiset variantit) niiden kanonisiksi ekvivalenteiksi.
  • NFKD (Compatibility Decomposition): Kuten NFD, mutta myös soveltaa yhteensopivuushajoitusta.

Työkalun kuvaus

Tämä työkalu normalisoi Unicode-tekstiä normalisointimuodosta toiseen. Valitse lähde- ja kohdemuodot, liitä tekstisi, ja muunnettu tulos näkyy välittömästi.

Ominaisuudet

  • Kaikki neljä normalisointimuotoa: Tukee NFC-, NFD-, NFKC- ja NFKD-muotoja sekä lähteenä että kohteena.
  • Kaksisuuntainen muuntaminen: Vaihda vapaasti minkä tahansa muotojen yhdistelmän välillä.
  • Reaaliaikainen tulos: Teksti normalisoidaan välittömästi kirjoittaessasi tai liittäessäsi.

Kuinka se toimii

Työkalu soveltaa standardia JavaScript String.prototype.normalize() -metodia valitulla kohdemuodolla. Tämä on täysin Unicode-standardin Annex #15:n mukainen Unicode-normalisoinnin toteutus.