???.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