ot Rumen_Yotov(11-11-2004)

reiting (22)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Vuvedenie v unikod
http://software.newsforge.com/article.pl?sid=04/10/27/1628230

Unikod ili Universalen Nabor ot Simvoli (UNS) e razraboten da reshi vednuzh zavinagi problemite s nalichieto na mnogo sushtestvuvashti nabori ot simvoli izpolzvani pri pisane na tekst na razlichni ezitsi. Toi e nabor ot simvoli, chiiato tsel e da bude nad-mnozhestvo (da obhvashta) vsichki drugi izpolzvani predi tova, kato sudurzha v sebe si vseki simvol, izpolzvan pri pisane na koito i da e ezik (vklyuchitelno i mnogo 'murtvi' ezitsi) kakto sushto i drugi simvoli, izpolzvani v matematikata i inzhenernite nauki. Vseki edin nabor simvoli mozhe bez zaguba da bude preobrazuvan kum unikod, kakto shte vidim po-kusno.

ASCII, simvolniiat nabor, baziran na 7-bitovi tseli chisla, beshe i vse oshte e mnogo razprostranen. Dokato negoviiat kapatsitet ot 128 simvola beshe dostatuchen po vremeto na negovoto suzdavane prez 1960-te godini, rastiashtata populiarnost na personalnite kompyutri po tseliiat sviat napravi ASCII neudoben za horata, govoreshti i pisheshti mnogo razlichni ezitsi s pomoshtta na mnogo razlichni azbuki.

Po-novite 8-bitovi simvolni nabori, kato familiiata ISO-8859, e sposobna da predstavi 256 simvola (realno po-malko, tui kato ne vsichki mogat da se izpolzvat pri pechat). Tova reshenie be dostatuchno dobro za znachitelna chast ot prakticheskite nuzhdi, no tui kato vseki simvolen nabor sudurzha simvoli, neobhodimi za pisane na niakolko ezika, ne sushtestvuvashe nachin da se izpolzvat v edin dokument simvoli ot dva razlichni ezika, koito izpolzvat simvoli ot dve razlichni simvolni nabora. V sluchaia s obiknoveni tekstovi failove drug problem be kak da se nakara softuera avtomatichno da razpoznava kodiraneto; v povecheto sluchai be neobhodima namesata na chovek koito da posochi koi simvolni nabori sa izpolzvani vuv vseki edin fail. Drug edin iztsialo nov problem e svurzan s izpolzvaneto na aziatskite ezitsi pri kompyutrite; ne-latinskite simvoli postaviha novi predizvikatelstva, dulzhashti se na fakta, che niakoi ezitsi se nuzhdaiat ot poveche ot  256 simvola, drugi pishat ot diasno na liavo, kakto i niakoi drugi harakteristiki koito ne biaha otcheteni ot sushtestvuvashtite standarti.

Unikod ima za tsel da razreshi vsichki tezi problemi.

Dve organizatsii poddurzhat unikod standarta -- Unikod Konsortsium (UK) i Mezhdunarodnata Organizatsiia po standartizatsiia (ISO). Imenata Unikod i ISO/IEC 10646 sa ekvivalentni kogato se spomenava za tozi simvolen nabor (obache opredelenieto na Unikod Konsortsiumut za unikod opredelia standart za poveche ot edin edinstven nabor simvoli -- toi sushto taka vklyuchva standart za pisane na dvuposochen tekst i drugi osobenosti, svurzani s tezi neshta).

Unikod kodiraniia

Unikod opredelia (otnositelno goliam) broi simvoli i na vseki ot tiah prisvoiava unikalen nomer, unikod-kod, chrez koito simvola mozhe da bude adresiran. Nachina za suhranenie na tezi kodove na disk ili v pametta na kompyutur e vupros na kodirane. Nai-razprostranenite Unikod kodiraniia se oznachavat s UTF-n, kudeto UTF oznachava Unikod Format za Transformatsiia, a  n e chislo opredeliashto broia bitove v osnovnata edinitsa, izpolzvana ot kodiraneto.

Zabelezhete, che Unikod promenia predpolozhenieto, koeto be viarno v techenie na mnogo godini i po-tochno che edin bait vinagi predstavliava edin simvol. Kakto shte vidite edinichen Unikod simvol chesto se predstavia ot poveche ot edin bait, tui kato broia na Unikod simvolite nadhvurlia 256, koeto e broia razlichni stoinosti koito mogat da se kodirat v ramkite na edin bait. Suotvetno triabva da se pravi razlika mezhdu broia na simvolite i broia na baitovete v daden tekst.

Dve mnogo razprostraneni kodiraniia sa UTF-16 i UTF-8. Pri UTF-16, koeto se izpolzva ot suvremennite versii na Microsoft Windows sistemite, vseki simvol e predstaven ot edna ili dve 16-bitovi (dvubaitovi) dumi. YUniks-podobnite operatsionni sistemi, vklyuchitelno i Linuks izpolzvat druga shema na kodirane, narechena UTF-8, kudeto vseki Unikod simvol e predstaven kato edin ili poveche baitove (obshto do chetiri; po-stara versiia na standarta razreshava do shest).

UTF-8 ima niakolko interesni svoistva, koito go praviat podhodiasht za tazi tsel. Purvo, ASCII simvolite se kodirat po edin i susht nachin pri ASCII i pri UTF-8. Tova znachi, che vseki edin ASCII tekstovi fail sushto taka e i korektno kodiran UTF-8 Unikod tekstovi fail, predstavliavasht sushtiiat tekst. V dopulnenie kogato se kodirat v UTF-8 simvoli, zaemashti poveche ot edin bait, simvolite ot ASCII nabora nikoga ne se izpolzvat. Tova garantira mezhdu drugite neshta, che ako softueren kod obrabotva podoben fail kato chist ASCII, ne-ASCII simvolite se ignorirat ili v nai-loshiiat sluchai se tretirat kato sluchaen bokluk, no te ne mogat da budat procheteni kato ASCII simvoli (koeto mozhe sluchaino da dovede do formalno korekten, no potentsialno problemni konfiguratsionni optsii v konfiguratsionen fail ili da dovede do drugi nepredvideni rezultati). Imaiki predvid vazhnostta na tekstovite failove v YUniks tezi harakteristiki za vazhni. Blagodarenie na nachinut po koito UTF-8 e razraboten, stari konfiguratsionni failove, shel-skriptove i dori mnogo goliama chast ot po-star softuer mogat da rabotiat korektno s Unikod tekst vupreki, che Unikod e razraboten godini sled kato te sa bili suzdadeni.

Kak Linuks obrabotva Unikod

Kogato kazvame, che Linuks sistema "mozhe da raboti s  Unikod", nie obiknoveno imame predvid che sa izpulnenie niakolko usloviia:

   * Unikod simvoli mogat da se izpolzvat v imenata na failove.
   * Osnovniiat sistemen softuer e sposoben da raboti s Unikod failovi imena, Unikod stringove pod formata na parametri i drugi.
   * Potrebitelskiiat softuer , kato tekstovi redaktori mozhe da izobraziava i redaktira Unikod failove.

Blagodarenie na harakteristikite na UTF-8 kodiraneto, iadroto na Linuks, nai-vutreshnata i namirashta se na nai-nisko nivo chast ot operatsionnata sistema mozhe da raboti s Unikod failovi imena, bez dori da se nalaga potrebitelia da 'kazva' che se izpolzva UTF-8. Vsichki simvolni stringove, vklyuchitelno failovi imena se obrabotvat ot iadroto po takuv nachin, che za nego te izglezhdat samo kato stringove ot baitove. Po tozi nachin niama znachenie i ne e neobhodimo da znae dali dvoika posledovatelni baitove triabva logicheski da se obrabotiat kato dva simvola ili kato edin simvol. Edinstveniiat risk za 'izlugvane' na iadroto shte bude, naprimer ime na fail koeto sudurzha mnogobaitov Unikod simvol, kodiran po takuv nachin, che edin ot izpolzvanite baitove da predstavliava slesh (/) ili niakakuv drug simvol, koito ima spetsialna upotreba v imenata na failove. Za shtastie kakto veche otbeliazahme, UTF-8 nikoga ne izpolzva ASCII simvoli za kodirane na mnogobaitovi simvoli, taka che nito 'slesh' nito niakoi drug spetsialen simvol mozhe da se poiavi kato chast ot ime i sledovatelno ne sushtestvuva risk svurzan s izpolzvane na Unikod v imena na failove.

Failovite tipove, koito ne sa bili predvideni za rabota s YUniks-i, kato tezi izpolzvani ot Windows sa po-razlichni, kakto shte vidim po-natatuk.

Potrebitelskite programi (v Linuks) izpolzvat taka narechenata informatsiia ot lokala (locale information) za da mogat pravilno da  preobrazuvat baitovete kum simvoli kakto i za drugi zadachi, kato opredeliane ezika za suobshteniia na dadeno prilozhenie i formatite za data i vreme. Tova se opredelia ot stoinostite na spetsialni promenlivi ot obkruzhenieto. Korektno napisani prilozheniia triabva da mogat da izpolzvat UTF-8 stringove vmesto ASCII stringove avtomatichno, ako lokala go posochva.

Povecheto prilozheniia za kraen potrebitel kogato da rabotiat s Unikod simvoli vklyuchitelno prilozheniia, napisani za desktop-sredite GNOME i KDE, familiite produkti OpenOffice.org i Mozilla i drugi. Obache, Unikod e poveche ot samo edin simvolen nabor -- toi vuvezhda pravila za kombinirane na simvolite, dvuposochno pisane, i drugi dopulnitelni vuzmozhnosti, koito ne vinagi se poddurzhat ot masovo-izpolzvaniiat softuer.

Niakoi programi za komanden red imat problemi s mnogobaitovite simvoli. Naprimer, 'tr' vinagi predpolaga, che edin simvol se predstavia kato edin bait nezavisimo ot lokala. Sushto taka, izpolzvanite shelove kato 'Bash' (i drugi programi izpolzvashti 'getline' bibliotekata kakto izglezhda) chesto se oburkvat kogato mnogobaitovi simvoli se vmukvat v komanden red i sled tova se iztrivat chrez 'Backspace' ili 'Delete' klavishite.

Ako izpolzvaneto na Unikod Vi zvuchi primamlivo, mozhete da prochetete (druga statiia) i da nauchite kak da instalirate i izpolzvate Unikod v Linuks.

Postoianno aktualizirana versiia na nastoiashtata statiia mozhete da namerite na stranitsata na avtora.
Date   2004.11.01 3:00
Author   StoneLion
Topic  

Michał Kosmulski e student vuv Varshavskiia universitet i Varshavskiia universitet za tehnologii.

Vruzki:
  1. "ISO-8859 family" - http://en.wikipedia.org/wiki/ISO_8859
  2. "Unicode Consortium" - http://en.wikipedia.org/wiki/Unicode_Consortium
  3. "International Organization for Standardization" - http://en.wikipedia.org/wiki/International_Organization_for_Standardization
  4. "Unicode" - http://en.wikipedia.org/wiki/Unicode
  5. "ISO/IEC 10646" - http://en.wikipedia.org/wiki/ISO_10646
  6. "UTF-16" - http://en.wikipedia.org/wiki/UTF-16
  7. "UTF-8" - http://en.wikipedia.org/wiki/UTF-8
  8. "updated version of this article" - http://hektor.umcs.lublin.pl/~mikosmul/computing/articles/linux-unicode.html
  9. "Michał Kosmulski" - http://hektor.umcs.lublin.pl/~mikosmul/
 10. "Warsaw University" - http://www.uw.edu.pl/en/
 11. "Warsaw University of Technology" - http://www.pw.edu.pl/english/index.html


<< Instalirane na TrueType shriftove v Gnome | Vuzmozhnosti za sertifikatnata izmama v X.509 >>