Mis on märkide kodeeringud nagu ANSI ja Unicode ja kuidas need erinevad?
ASCII, UTF-8, ISO-8859… Võib-olla olete näinud neid kummalisi monikereid ujudes ringi, aga mida nad tegelikult tähendavad? Lugege edasi, kui selgitame, milline märgikood on ja kuidas need akronüümid on seotud ekraanil kuvatava lihttekstiga.
Põhilised ehitusplokid
Kui me räägime kirjalikust keelest, räägime sõnadest, mis on sõnade ehitusplokid, mis seejärel ehitavad lauseid, lõikeid jne. Kirjad on helisid esindavad sümbolid. Kui te räägite keelest, räägite te helirühmadest, mis tulevad kokku, et moodustada mingit tähendust. Igal keelesüsteemil on keeruline reeglite ja määratluste kogum, mis reguleerivad neid tähendusi. Kui teil on sõna, on see kasutu, kui te ei tea, millisest keelest see pärineb, ja kasutate seda teistega, kes seda keelt räägivad.
(Grantha, Tulu ja malajalami skriptide võrdlus, pilt Wikipedias)
Arvutite maailmas kasutame terminit „iseloom”. Tähemärk on omamoodi abstraktne mõiste, mis on määratletud konkreetsete parameetritega, kuid see on tähenduse põhiühik. Ladina "A" ei ole sama, mis kreeka "alfa" või araabia "alif", sest neil on erinevad kontekstid - nad on erinevatest keeltest ja neil on veidi erinevad hääldused - nii et võime öelda, et need on erinevad tähemärgid. Tähemärgi visuaalset kujutist nimetatakse “glüüfiks” ja erinevaid sümboleid nimetatakse fontideks. Tähemärkide rühmad kuuluvad "komplekti" või "repertuaari".
Kui kirjutad punkti ja muudate fondi, siis te ei muuda tähtede foneetilisi väärtusi, muutsite, kuidas nad näevad. See on lihtsalt kosmeetiline (kuid mitte tähtsusetu!). Mõnedel keeltel, nagu iidne Egiptuse ja Hiina, on ideogrammid; need esindavad heli asemel terveid ideid ja nende hääldused võivad aja jooksul ja kauguselt erineda. Kui asendate ühe märgi teisele, siis asendate idee. See on rohkem kui lihtsalt tähtede muutmine, see muudab ideogrammi.
Märkide kodeerimine
(Pilt Wikipediast)
Kui kirjutate midagi klaviatuurile või laadite faili, kuidas teab arvuti, mida kuvada? See on märkide kodeering. Arvutis olev tekst ei ole tegelikult tähed, see on paar seotud tähtnumbrilisi väärtusi. Märkide kodeering toimib võtmena, mille väärtused vastavad sellele, millised tähemärgid sarnanevad sellele, kuidas ortograafia määrab, millised helid vastavad sellele, millised tähed. Morse kood on omamoodi märkide kodeering. See selgitab, kuidas pikkade ja lühikeste üksuste rühmad, näiteks piiksud, tähistavad tähemärki. Morse-koodis on tähemärgid vaid inglise tähed, numbrid ja täielikud peatused. On palju arvutimärkide kodeeringuid, mis tõlgivad tähtedeks, numbriteks, rõhumärkideks, kirjavahemärkideks, rahvusvahelisteks sümboliteks jne..
Sageli kasutatakse sellel teemal ka terminit „koodilehed”. Need on sisuliselt iseloomulikud kodeeringud, mida kasutavad konkreetsed ettevõtted, sageli väikeste muudatustega. Näiteks on Windows 1252 koodileht (varem tuntud kui ANSI 1252) ISO-8859-1 modifitseeritud vorm. Neid kasutatakse enamasti sisemise süsteemina, et viidata standardsetele ja modifitseeritud märgikoodidele, mis on samadele süsteemidele omased. Varajane märkide kodeerimine ei olnud nii oluline, sest arvutid ei olnud omavahel suhtlevad. Kuna internet tõuseb esile ja võrgustumine on levinud, on see muutunud meie igapäevaelu üha olulisemaks, ilma et me seda isegi mõistaksime.
Paljud eri tüübid
(Pilt kasutajalt sarah sosiak)
Seal on palju erinevaid märkide kodeeringuid ja sellele on palju põhjuseid. Milline kodeering, mida soovite kasutada, sõltub teie vajadustest. Vene keeles suhtlemisel on mõttekas kasutada sümboolset kodeeringut, mis toetab kirillit. Kui suhtlete korea keeles, siis tahad midagi, mis esindab hästi Hanguli ja Hanja. Kui oled matemaatik, siis tahad midagi, millel on kõik teaduslikud ja matemaatilised sümbolid, samuti kreeka ja ladina keeled. Kui sa oled prankster, võib-olla saaksid kasu tagurpidi. Ja kui soovite, et kõik sellised dokumenditüübid vaadataks ükskõik millisel isikul, soovite kodeeringut, mis on üsna tavaline ja kergesti ligipääsetav.
Vaatame mõningaid tavalisemaid.
(Väljavõte ASCII tabelist, Image from asciitable.com)
- ASCII - Ameerika teabevahetuse standardkood on üks vanemaid märkide kodeeringuid. Algselt töötati see välja telegraafi koodide alusel ja see on aja jooksul arenenud, et lisada rohkem sümboleid ja mõningaid nüüd vananenud trükitud kontrollmärke. See on ilmselt sama lihtne kui tänapäeva süsteemide osas, sest see on piiratud ladina tähestikuga, milles ei ole rõhumärke. Selle 7-bitine kodeering võimaldab ainult 128 tähemärki, mistõttu on kogu maailmas kasutusel mitu mitteametlikku varianti.
- ISO-8859 - Rahvusvahelise Standardiorganisatsiooni kõige sagedamini kasutatav märkide kodeeringute rühm on number 8859. Iga spetsiifiline kodeering on tähistatud numbriga, mida sageli eelistab kirjeldav moniker, nt. ISO-8859-3 (Ladina-3), ISO-8859-6 (ladina / araabia). See on ASCII superset, mis tähendab, et esimesed 128 väärtust kodeeringus on samad kui ASCII. See on aga 8-bitine ja võimaldab 256 tähemärki, seega loob see sealt välja ja sisaldab palju laiemat sümbolit, kusjuures iga konkreetne kodeering keskendub erinevatele kriteeriumidele. Ladina-1 sisaldab hulga rõhumärke ja sümboleid, kuid hiljem asendati uuendatud komplektiga Ladina-9, mis sisaldab uuendatud sümboleid nagu euro sümbol.
(Väljavõte Tiibeti skriptist, Unicode v4, unicode.org-st)
- Unikood - See kodeerimisstandardi eesmärk on universaalsus. Praegu sisaldab see 93 skripti, mis on korraldatud mitmetes plokkides, palju rohkem töödes. Unicode töötab erinevalt teistest märgistikestest, kuna selle asemel, et kodeerida otse glüfüüri, suunatakse iga väärtus edasi „koodipunkti”. , näiteks veebibrauser. Neid koodipunkte kujutatakse tavaliselt järgmiselt: U + 0040 (mis tähendab "@"). Unicode standardi alla kuuluvad spetsiifilised kodeeringud on UTF-8 ja UTF-16. UTF-8 püüab võimaldada maksimaalset ühilduvust ASCII-ga. See on 8-bitine, kuid lubab kõik tähemärgid asendusmehhanismi ja mitmete väärtuste paari kaudu. UTF-16 kraavid sobivad ideaalseks ASCII ühilduvuseks, et saavutada 16-bitine ühilduvus standardiga.
- ISO-10646 - See ei ole tegelik kodeering, vaid Unicode'i märgistik, mis on ISO poolt standarditud. See on enamasti oluline, sest see on HTML-i poolt kasutatav iseloomu repertuaar. Mõned Unicode'i pakutavad täiustatud funktsioonid, mis võimaldavad kõrvutamist ja paremale vasakule paremale, on puuduvad. Siiski töötab see internetis väga hästi, kuna see võimaldab kasutada mitmesuguseid skripte ja võimaldab brauseril tõlgendada glüüke. See muudab lokaliseerimise mõnevõrra lihtsamaks.
Mis kodeeringut peaksin kasutama?
Noh, ASCII töötab enamiku inglise keele kõnelejate jaoks, kuid mitte palju muud. Enamasti näete ISO-8859-1, mis töötab enamikes Lääne-Euroopa keeltes. Teised ISO-8859 versioonid töötavad kirillitsa, araabia, kreeka või muu konkreetse skripti puhul. Kui soovite samas dokumendis või samal veebilehel kuvada mitu skripti, võimaldab UTF-8 palju paremat ühilduvust. See töötab ka hästi inimestele, kes kasutavad õigeid kirjavahemärke, matemaatilisi sümboleid või mansetinõudeid, näiteks ruudud ja märkeruudud.
(Mitmed keeled ühes dokumendis, gujaratsamachar.com'i pilt)
Siiski on iga komplekti puudused. ASCII on kirjavahemärkides piiratud, nii et see ei toimi uskumatult hästi tüpograafiliselt korrektsete muudatuste jaoks. Sisestage kunagi kopeeri / kleebi Wordist ainult selleks, et omada mõnda kummalist kombinatsiooni glüüfidest? See on ISO-8859 puudus või õigemini selle eeldatav koostalitlusvõime OS-spetsiifiliste koodilehtedega (me vaatame YOU, Microsoft!). UTF-8 peamine puudus on puuduliku toetuse puudumine rakenduste redigeerimisel ja avaldamisel. Teine probleem on see, et brauserid ei suuda sageli tõlgendada ja lihtsalt kuvada UTF-8 kodeeritud märgi baitide järjekorda. Selle tulemusena kuvatakse soovimatuid sümboleid. Ja muidugi, teise kodeeringu ja teise tähemärgi kodeerimise ja nende veebisaidil õigesti deklareerimata / viitamata deklareerimine muudab brauseritele nende korrektseks muutmise keeruliseks ja otsingumootorite jaoks nende asjakohase indekseerimise.
Oma dokumentide, käsikirjade ja nii edasi saate kasutada seda, mida vajate töö tegemiseks. Mis puudutab veebi, tundub siiski, et enamik inimesi nõustub UTF-8 versiooni kasutamisega, mis ei kasuta baitide järjekorda, kuid see ei ole täiesti üksmeelne. Nagu näete, on iga märkide kodeeringul oma kasutus, kontekst ja tugevad ja nõrgad küljed. Lõppkasutajana ei pea te tõenäoliselt sellega tegelema, kuid nüüd saate teha täiendava sammu edasi.