Friday, November 4, 2005, 8:12:56 PM, you wrote:

> On Fri, 4 Nov 2005, Jan Dvořák wrote:

>> mam odstranit diakriticka znamenka ze vsech pismen v retezci, ktera jsou v
>> latince.
>> Nejen ceska diakritika, ale vsechny mozne akcenty nad pismeny anglicke
>> abecedy.
>> Verze Javy je 1.5.
>>
>> Nevite lepsi zpusob nez prevodni tabulku?

> Krok cislo 1: pro kazdy znak provest konverzi do normalni formy NFD nebo
> NFKD (dekompozici).

> Krok cislo 2: ze vznikleho zahodit vsechny znaky s tridou Mn (non-spacing
> mark), zbytek by mely byt zakladni (base) znaky.

> Tento postup ma nekoli problemu:

> - myslim, ze Java neposkytuje konverzi do normalni formy (alespon ne v
> core API), nicmene Unicode knihovna od IBM by to poskytovat mela 
> (nezkousel jsem); test na tridu viz Character.NON_SPACING_MARK a 
> navazujici

> - rozpadnou se i jine znaky nez jen ty s diakritikou, napr. nektere 
> ligatury - zda se, ze uzitim formy NFD misto NFKD (coz provadi nejprve
> kompatibilni dekompozici) by se vetsina takovych dala odstavit; a jelikoz
> v zadani se hovori o anglicke abecede, pak staci dekomponovat pouze znaky
> z Latin bloku (basic, supplement, ext. A, ext. B a ext. additional)

> Vice viz unicode.org.


tak, pekne odborne podane, dufal som, ze to ma niekto zmaknute :-)

lenze ak tomu dobre rozumiem, cely postup je v zasade zalozeny na
kategorizacii znakov, a tuto kategorizaciu si znaky nenesu priamo v
sebe.

to znamena, ze je nutne tieto informacie ziskavat z nejakej databazy,
ergo - prevodnej tabulky...

rozumiem tomu spravne? :-)


-- 
Patrik Beno
J2EE Software Architect
____________________________________
Cleverlance - The Clever Enterprise Solutions
www.cleverlance.com

European Business Center
Dukelskych hrdinu 34
170 00 Praha 7
Czech Republic

Tel.:   +420 266 177 166
Mobile: +420 777 929 450
Fax:    +420 266 177 155


Odpovedet emailem