Mis on Unicode normalisatsioon?

Unicode määratleb mitut viisi sama nähtava märgi esitamiseks. Näiteks märki "é" saab salvestada ühe eelnevalt koostatud koodipunktina (U+00E9) või tähena "e" millele järgneb kombineeriv akuutne aktsent (U+0065 U+0301). Mõlemad renderduvad identselt, kuid on baiditi erinevad, mis põhjustab probleeme stringide võrdlemisel, otsimisel ja tekstitöötlemisel.

Unicode normalisatsioon on teksti teisendamise protsess kanooniliseks esituseks, nii et samaväärsed stringid muutuvad identseteks. Unicode Standard määratleb neli normalisatsioonivormingut:

  • NFC (Kanoonilise dekompositsioon, millele järgneb kanoonilise kompositsioon): Eelnevalt koostatud vorm; kõige kompaktsem, laialdaselt kasutusel veebis ja enamikus operatsioonisüsteemides.
  • NFD (Kanoonilise dekompositsioon): Täielikult dekomponeeritud vorm; iga märk jagatakse põhitäheks ja kombineerivate märkideks.
  • NFKC (Ühilduvuse dekompositsioon, millele järgneb kanoonilise kompositsioon): Nagu NFC, kuid lisaks voltib ühilduvuse märgid (nt ligaatuurid, ülaindeksid, täislaiused variandid) nende kanooniliste ekvivalentideks.
  • NFKD (Ühilduvuse dekompositsioon): Nagu NFD, kuid lisaks rakendab ühilduvuse dekompositsioon.

Tööriista kirjeldus

See tööriist normaliseerib Unicode teksti ühest normalisatsioonivormingust teise. Valige allikas- ja sihtvorming, kleepige oma tekst ja teisendatud väljund ilmub kohe.

Funktsioonid

  • Kõik neli normalisatsioonivormingut: Toetab NFC, NFD, NFKC ja NFKD nii allikana kui ka sihtkohana.
  • Kahesuunaline teisendamine: Lülitage vabalt mis tahes vormingute kombinatsiooni vahel.
  • Reaalajas väljund: Tekst normaliseeritakse koheselt, kui tippite või kleepite.
  • Käsitleb mis tahes Unicode skripti: Töötab ladina, CJK, araabia, kyrillitsa ja mis tahes muu Unicode-kodeeritud tekstiga.

Kuidas see toimib

Tööriist rakendab standardset JavaScript meetodit String.prototype.normalize() valitud sihtvorminguga. See on Unicode normalisatsiooni täielikult spetsifikatsiooniga nõutav rakendamine, nagu see on määratletud Unicode Standard Annex #15-s.

Kasutamise juhtumid

  • Stringide võrdlemise parandused: Normaliseerige tekst enne selle võrdlemist või indekseerimist, et tagada, et visuaalselt identsed stringid vastaksid õigesti.
  • Otsing ja andmebaasi järjepidevus: Standardiseerige kasutaja sisend üheks vorminguks (tavaliselt NFC) enne selle andmebaasi salvestamist, et vältida duplikaatvõtteid, mis erinevad ainult kodeeringus.
  • Ühilduvuse voltimise: Kasutage NFKC ligaatuuride, ülaindeksite ja täislaiuste märkide kokkuvoltimisel nende standardseteks ekvivalentideks otsingu indekseerimise või loomulike keelte töötlemise jaoks.