OT Odmekcenodlznovacie tabulky

Stanislav ©mejkal smejkal na smejkal.com
Středa Listopad 9 15:37:34 CET 2011


Dne 9.11.2011 14:47, Jiri Foldyna napsal(a):
> Dne 9.11.2011 9:40, Stanislav ©mejkal napsal(a):
>> Dne 8.11.2011 21:13, Jan Waclawek napsal(a):
>>> V nepriamej suvislosti s mrsenim mailov, existuju niekde nejake volne
>>> pouzitelne jednoduche tabulky alebo funkcie na prevod pismen s
>>> diakritikou na ich nediakriticku :-) verziu, pre jednotlive kodovania?
>>> T.j. ze vstupom je napr. 'z(' v kodovani iso-8859-2, a vystupom je 'z' a
>>> pripadne este nejake cislo co znamena ten makcen?
>>>
>>> Pre pouzitie v mcu, takze co najmensie/najjednoduchsie.
>>>
>>> Dakujem
>>>
>>> wek
>>
>> Udelejte si pole o 256 znacich (bytech) a pro kazdy index predejte vysledne
>> pismeno. Neni to sice datove optimalni, ale implementacne a casove velmi
>> jednoduche.
>>
>> Standa
>
> To na Unicode nestačí.

Aha, tak na Unicode (resp. UTF-8) to zrovna pouzivam - priklad je v PHP.
Nejdriv prekoduju UTF-8 znak na unicode index, potom vse nad 512 zmenim na nulu
a cislo 0-511 pouziju jako index do tabulky. Vtip je i v tom, ze zdrojak
neobsahuje zadna nabodenicka.
Potom je jeste moznost orezat vsechny znaky mimo pismena, cslice, podtrzitko -
to je ten druhy index ABCD 0-127.

Prevod UTF-8 -> Unicode je pomerne jednoduchy a optimalizovatelny na
konkretni pouziti.

Standa

   $ASCII = '                                 !"#$%&_()*+,-./0123456789:;<=>?' .
            '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ' .
            '                                 _cLoY|P_ca<--R-0+23_u__,10>____' .
            'AAAAAAACEEEEIIIIDNOOOOOxOUUUUYPSaaaaaaaceeeeiiiidnooooo_ouuuuypy' .
            'AaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgHhHhIiIiIiIiIiIiJjKkkLlLlLlL' .
            'lLlNnNnNnnNnOoOoOoOoRrRrRrSsSsSsSsTtTtTtUuUuUuUuUuUuWwYyYZzZzZzs' .
            '               _  f             Oo             Uu               ' .
            '             AaIiOoUuUuUuUuUu                             AaAaOo';
   $ASCII[39] = chr(39);
   $ABCD  = '                                 _______________0123456789______' .
            'aABCDEFGHIJKLMNOPQRSTUVWXYZ______abcdefghijklmnopqrstuvwxyz_____';


Daląí informace o konferenci Hw-list