???.txt

Andras Tantos andras_tantos at yahoo.com
Sat May 21 18:24:18 CEST 2005


Hali!

>> Talan emlekeztek, amikor arrol irtam, hogy a Unicode sokkal inkabb
>> hozzaallas es odafigyeles, sem mint szabvany kerdese, es hogy az, hogy a
>> programok nem mukodnek jol csak Unicode-ban abrazolhato karakterekkel, az 
>> a
>> nyugati emberek ignoranciajan es arroganciajan, es nem a szabvanyon 
>> mulik?
>
> Meg irhattal volna valami nacionalista frocsogest, hogy az USA mennyire
> elnyomja a szegeny magyarokat stb..., bezzeg a sved es belga karakterek
> benne voltak mar a CGA karakter ROM-ban is, amit ma OEM kodlapnak hivunk!
> Arroganciarol szo sincs, egyszeruen nem ertik a problemat.
> Ezert nincs az en levelezomben sem unicode tamogatas...
> Ok tok jol elvannak a 26 karakterrel, nem kibaszasbol, direkt nem
> tamogatjak, hanem azt sem tudjak mirol van szo.
> Megjegyzem, en is tok jol ellennek a 26 karakterrel.

No, most mar kezd flame iranyaba menni ez az egesz, ugyhogy en kiszallok, 
azt hiszem. Nem akartam en semmifele nacionalista felhangokat pengetni, es 
plane nem csak az USA-rol beszelek. Tobbek kozott rolad is: "Megjegyzem, en 
is tok jol ellennek a 26 karakterrel." Arrol beszelek, hogy az europai es 
amerikai emberek el sem tudjak kepzelni, hogy van olyan nyelv, amiben tobb, 
mint 256 karakter van, es ugy alkotjak meg az alapveto szamitastechnikai 
szabvanyokat, hogy ezek a nyelvek eleve kiessenek. Ezt hivjak ignorancianak: 
figyelmen kivul hagyjak a dolgok egy reszet.

Arrogancianak meg azt, hogy amikor ez a problema felmerul, akkor el kezdenek 
ervelni (mint te is), hogy a regi rendszer milyen jo.

Aztan csinalnak egy uj szabvanyt, ami elvben univerzalis, csak eppen 
"veletlenul" az europai kis problemakat - kodlapok - megoldja, de az azsiai 
nagy problemakat nem.

Mi az alternativaja a unicode-nak Azsiaban? A multibyte. Ez esetben a 
karakter hossza nem konstans. Ez rengeteg szivassal jar! A legegyszerubb 
string-muveletekbol (kovetkezo karakter, string hossza, memoriafoglalas 
szamitasa) bonyolult rutinok valnak, amikben, es foleg amiknek a 
hasznalataban rengeteg hibalehetoseg van. A sebesseg-csokkenesrol nem is 
beszelve.

Gondolj csak bele, hogy mekkora melo lenne egy meretesebb programot (pl. A 
Total Commandert) atirni multibyte tamogatasra! Minden egyes 
string-muletetet atnezni, es adott esetben atirni. Aztan letesztelni. Es az 
elkovetheto hibak egy jelentos resze buffer-overflow hibahoz, azaz 
valoszinuleg egy biztonsagi reshez vezet, amit aztan be kell foltozni, 
megintcsak tesztelni, szetkuldeni a felhasznaloknak, azokat ravenni a 
telepitesre...

C-t ertoknek egy ilyen hiba:
char *NewStr = malloc(strlen(OldStr)+1);
strcpy(NewStr,OldStr);

A problema a Unicode-dal nem az, hogy 16-biten tarol minden karaktert, hanem 
az, hogy nem. A 'surrogate' karaktereket a UTF16 (ez a Unicode 16-bites 
verzioja) is tobb mint ket byte-on tarolja. Mert sikerult megint egy olyan 
szabvanyt kitalalni, ami nem eleg atfogo ahhoz, hogy valoban az osszes nyelv 
osszes karakteret tartalmazza. Meg (allitolag) a UTF32 sem eleg jo ehhez. Es 
bizonyos (afrikai torzsi) nyelvek meg mindig hianyoznak. Tehat pl. az a Sved 
nyelvesz, aki cikket szeretne irni ennek a torzsnek a nyelverol, bizony meg 
mindig, a legcsillogobb, legujabb unicode szabvany hasznalata mellett is 
bajban van.

De legalabb a 'fontosabb' azsiai nyelvek 'fontosabb' karakterei benne vannak 
a UFT16-ben.

Szoval: a unicode megoldast ad a kodlapok elkerulesere (ha ugy tettszik az 
aktualis kodlap informaciot tarolja a karakter elott), de ez a kisebb 
problema, mert ebbol legfeljebb megjelenitesi problema szarmazik. Nem adott 
viszont megoldast a multibyte elkerulesere, ami viszont legjobb esetben 
durva mukodesi hibat, de szinte biztosan egy-ket biztonsagi rest okoz.

Es aki erre azt mondja, hogy ot ez nem erdekli, az ignorans tobb tiz millio 
ember napi problemaival szemben. Es aki erre azt mondja, hogy ez mast se 
kellene, hogy erdekeljen, az meg arrogans is.

A hozzaallas lassan valtozik, de nem am azert, mert errefele kezdenek az 
emberek rajonni, hogy hat bizony, szegeny azsiaiaknak milyen problemaik 
vannak, hanem mert szegeny azsiaiak mar nem is olyan szegenyek, es azon a 
piacon csak unicode-dal, raadasul tisztesseges unicode tamogatassal lehet 
ervenyesulni.

> Ez nem ilyen egyszeru, olvasd el a masik levelem!
> En termeszetesen direkt nem tamogattam az ekezeteket, es a fajlnevekben
> nem is fogom soha.
> De amennyiben kuld nekem valaki egy kodot, ami kezeli az unikodot,
> meg tud jeleniteni minden karaktert egy 44780 vezerlos karakteres lcd-n,
> es belefer mondjuk egy mega8-ba, es nem foglal sokkal tobb helyet mint
> a jelenlegi FAT rutinjaim, akkor igerem, beleteszem!!

Ez igy vilagos. De ehhez az a hozzaallas tartozna, hogy sajnos, sajnos a 
korulmenyek nem teszik lehetove a szabvanyos, es tisztesseges megvalositast, 
tisztaban vagyok azzal, hogy a programom hianyos, de jelen pillanatban nem 
tudok mast tenni. Ami nagyon birizgalta a csoromet, az az a kijelentes, hogy 
'a filnev minden paratlan karaktere 0'. Ha valaki erre redukalja a UTF16 
kodolast, az bizony nem erti mirol van szo, de nagyon nem. Es te magad 
irtad, hogy ezt nem csak te valositottad meg igy, hanem meg a 
dokumentaciokban is ezt olvastad.

No mindegy, a tema nem elektro, sot lassan nem is programozas, ugyhogy a 
reszemrol azt hiszem befejeztem.

Udv,
Tantos Andras




More information about the Elektro mailing list