ceske trideni podle ISO-8859-2

Vladimir Michl Vladimir.Michl na seznam.cz
Úterý Duben 25 12:34:56 CEST 2000


On Fri, 21 Apr 2000, Jirka Jurek wrote:

> Pouzivam trideni pomoci locales a funkce strcoll z glibc-2.1
> 
> setrideni v us kodovani vypada:
> " 2"
> "10"
> to same v cs_CZ (ISO-8859-2):
> "10"
> " 2"
> 
> Norma na
> http://www.usiscr.cz/cz/standardy/tecstd08.html
> rika:
> "Skupiny slov se radi postupne podle jednotlivych slov tvoricich skupinu,
> pri cemz nezalezi na poctu mezer, ktere oddeluji slova."
>          ^^^^^^^^

Toto pravidlo je splneno tak, ze pri porovnavani se mezery a nektere jine
znaky pri porovnavani v prvnich fazich uplne ignoruji. Vyjimkou je
nedelitelna mezera.

> a dale
> "Cislice se radi podle jejich ciselne hodnoty vzestupne za abecedu." 

Toto lze, vzhledem k tomu ze funkce porovnava pouze textove, retezce
zarucit pouze pro jednotlive cifry. Pokud chcete porovnavat podle ciselne
hodnoty, je treba prevadet z retezce na cislo a to jiz neni v moznostech
lokalizace. Na tyto ucely je treba si napsat nadstavbovou knihovnu.

> 3.10:
> Cisla nejsou razena podle ciselne hodnoty, ale podle hodnoty jednotlivych
> cislic."

Protoze to vzhledem ke vlastnostem glibc nelze jinak udelat.

> Problem se da obejit, pokud pouziji tzv. nerozdelitelnou mezeru (0xA0)
> http://www.usiscr.cz/iso-8859-2/cz/standardy/tectab01.html
> misto normalni mezery (0x20). Pak jsou cislice setrizeny spravne, protoze
> nerozdelitelna mezera se radi pred cislice a pismena.

> A dale, jestli se chystaji dalsi upravy ceskych locales v glibc?

Jake upravy by jste pozadoval? Pokud by to bylo v mojich silach, tak je
uskutecnim. Mam ale takove tuseni ze Vami pozadovane upravy vlastnosti
budou nad moznosti glibc.

S pozdravem

Vlada Michl

**********************************************************************
*  Name:    Vladimir Michl                                           *
*  E-mail:  Vladimir.Michl na seznam.cz                                 *
*  Web:     http://www.penguin.cz/~michlv                            *
*  Tel:    +420/68/5391545                 Work: 068/5711292         *
*           068/5391545                          Czech Republic      *
**********************************************************************



Další informace o konferenci Linux