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.
  • Käsittelee mitä tahansa Unicode-kirjoitusjärjestelmää: Toimii latinalaisen, CJK-, arabian, kyrillisen ja minkä tahansa muun Unicode-koodatun tekstin kanssa.

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.

Käyttötapaukset

  • Merkkijonojen vertailun korjaaminen: Normalisoi teksti ennen vertailua tai indeksointia varmistaaksesi, että visuaalisesti identtiset merkkijonot vastaavat oikein.
  • Haun ja tietokannan johdonmukaisuus: Standardisoi käyttäjän syöte yhteen muotoon (tyypillisesti NFC) ennen tallentamista tietokantaan, jotta vältetään kaksoiskappaleita, jotka eroavat vain koodauksessa.
  • Yhteensopivuuden taittaminen: Käytä NFKC:tä ligatuurien, yläindeksien ja täyslevyisten merkkien tiivistämiseen niiden vakiovastaaviksi hakuindeksoinnissa tai luonnollisen kielen käsittelyssa.