Teknologio

teknologio, komputiko, scienco kaj aliaj studemulaj temoj

1 note

La solvo de unikodo kaj signovica komparado

Post ne tro multe da tempo mi sukcesis trovi la bonan solvon de la afero kiel kompari signovicojn faritajn el unikodaj signoj.

La magia serĉtermino en google estas:  UnicodeData.txt

Tiu ĉi doserio enhavas ĉiun signon de la tuta unikoda signaro.  Ĉiu vico listas unue la unikodan signan ciferon plus aldonaj informoj pri la signo, apartigitaj per punktokomoj.  Tiu respondas preskaŭ ĉiujn miajn demandojn.

Ekzemple, ni havas la “angstrom” signo, kiu estas ia scienca aŭ matematika simbolo konsistante el majuskla A kun cirkleta supersigno.  Ties unikoda cifero estas 212B.  En alia kolumno de la sama vico listiĝas ke tiu ĉi estas kongrua kun unikoda signo 00C5 kiu nomiĝas ne “angstrom” sed nur latina signo A kun supera cirkleta signo, memevidente identaj signoj.  Tiam la 00C5 vico listas ke tiu ĉi estas kongrua kun du signa sinsekvo 0041 030A.  0041 estas la unikoda cifero por la latina A sen ĉapeloj. Notu ankaŭ la brilon de unikodo, ke tiu 0041 samas kun 41 en ASCII.  030A listiĝas en la dosiero aliloke kun la priskribo: Kombinanta cirkleto supera. (Combining ring above.)  Aliaj informoj en tiu vico indikas ke 030A ne okupas spacon per si mem, sed nur povas esti uzata kombine kun aliaj signoj.

Sprita uzo de tiu ĉi ampleksa datumbazo-en-tekstodosiero ebligas min, kaj nin ĉiujn, sukcese kompari signovicojn faritajn el malsamaj unikodaj signoj, je kiu ajn grado de kongruo kiun la programisto deziras.

Mia sola lamento pri la datumbazo, sed kun kiu mi lernos vivi, estas ke la kopirajta signo estas listigita kiel tiu tute ne havas kongruan sinsekvon.  Laŭ mi la logika kongrua sinsekvo estus la tri ASCII signoj (c).  Sed la unikoda verkistoj malkonsentas tiun opinion.  Aliflanke, kaj ĝoje la unuopa signo por unu duono ja listas la tri signojn 1/2 kiel ekvivalenton.  Tre bone!

Filed under programado

  1. teknologio posted this