|
ot Rumen_Yotov(11-11-2004)
reiting (22)
[ dobre ]
[ zle ]
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 >>
|
|