Unicode

Unicode eða Samkóti[1] er heiti á stöðluðu kerfi í tölvuiðnaði sem gerir tölvum kleift að sýna og meðhöndla texta í flestum ritkerfum heims með samræmdum hætti (þó er UTF-16 og afbrigði af enn notað, auk UTF-8). Frá júni 2017, er nýjasta úgáfan Unicode 10.0 sem samanstendur af 136.755 stafatáknum sem styðja 139 ritkerfi (bæði nútíma og kerfi sem ekki eru lengur notuð), töflur sem sýna staðsetningu táknanna, aðferðafræði við kóðun, fjölda skilgreininga á stafagerðum svosem hástafi og lágstafi, og margt fleira.

Sjálfseignarstofnunin The Unicode Consortium hefur einsett sér að Unicode muni algerlega koma í stað annarra staðla um textameðhöndlun, þar sem margir þeirra eru takmarkaðir í stærð og möguleikum, og eru ósamhæfir kerfum á fleiri en einu tungumáli.

Árangur Unicode við að sameina stafatöflur hafa leitt til þess að það er orðið afar útbreitt (t.d. er UTF-8 notað af 90.6% vefsíðna) og er ríkjandi við þýðingu og staðfæringu hugbúnaðar. Staðalinn hefur verið innleiddur í margar nýlegar tækninýjungar á hugbúnaðarsviði, svo sem XML, forritunarmálið Java, forritunarumhverfið Microsoft .NET og nútímastýrikerfi.

Unicode má innleiða með mismunandi kóðun, hinu ráðandi UTF-8 á internetinu (og í Linux/Unix) eða UTF-16 (er enn notað í Windows, eða alla vega með UTF-8). Öll form af Unicode, nú í algengri notkun taka mismikið pláss fyrir mismunandi stafi ("variable length"); sem dæmi er hámarkið 4 bæti líka í UTF-16 fyrir t.d. "emjoji" tákn (broskallar). Minna notaðar kóðanir eru t.d. UTF-32 sem er líka staðlað en sjaldgæft, eða UTF-EBCDIC. Hins vegar eru dæmi um afbrigði af UTF-8, sem sum eru algeng, Modified UTF-8 (notað t.d. af Java), og WTF-8 (Wobbly Transformation Format) og CESU-8 (Compatibility Encoding Scheme for UTF-16: 8-Bit), sem t.d Oracle gagnagrunnar notar í stað UTF-8.

Ólíkt ISO 8859-1 (líka kallað Latin1) stafatöflunni sem var ráðandi fyrir íslensku þar sem allir stafir taka eitt bæti (eða t.d. Windows-1252 töflunni sem er jafnvel oftar notað en er svipuð, og eins varðandi alla íslenska stafi), taka séríslenskir stafir í íslensku tvö bæti í Unicode. Fyrstu 256 tákn í Unicode samsvara ISO 8859-1, en aðeins fyrstu 128, þ.e. ASCII (án séríslensku stafanna), taka einn bæti UTF-8. Kostir Unicode, umfram áðurnefndar stafatöflur, eru meðal annars að texti er ekki lengur takmarkaður við t.d. íslensku og ensku (og önnur nokkur önnur mál úr vestur-Evrópu) heldur er hægt að nota t.d. allt gríska stafróðið með (sem er gott fyrir stærðfræðilegan texta, auk annarra tákna úr stærðfræði) eða t.d. arabísku eða hebresku, sem bæði lesast frá hægri-til-vinstri (Unicode skrár styðja það, en aðeins betri hugbúnaður getur birt rétt, jafnvel með texta í hina áttina, t.d. flestir vafrar, s.s. Firefox og Chrome).

Saga og smáatriði

Unicode (frá og með UTF-16) býður upp á 1.114.112 möguleg tákn (í 17 "plönum"), þ.e. er hugsað til framtíðar til að styðja öll framtíðartungumál líka (og notendur geta líka skilgreint sín eigin í Private Use Area (PUA)).

Svokallað byte order mark (BOM), eða Unicode signature, er ekki nauðsynlegt né æskilegt í UTF-8 texta, en er ráðlagt í UTF-16 textsskrám. Windows notar UTF16LE ("little endian"), sem UTF-16, en UTF-16BE er líka til (og UTF-32LE og UTF32-BE). Mörg forrit, t.d. á Linux ráða ekki við UTF-16 skrár jafnvel þó það sé löglegur valmöguleiki, á t.d. Windows. Á Windows var UCS-2 fyrst notað og svo UTF-16, og í seinni tíð í meira mæli UTF-8. Sögulega séð var Unicode takmarkað við 65.536 stafatákn, þ.e. USC-2, ar til kínverjar þvinguðu fram breytingar (" Han unification") til að styðja kínversku betur, og úr varð UTF-16).

Mögulegar kóðanir fyrir Unicode eru UTF-8 (sem notar 1 bæti fyrir öll ASCII tákn, en annars upp í 4 bæti), UCS-2 (sem nú er úrelt, notar 2 bæti fyrir öll tákn, en inniheldur ekki öll tákn í Unicode staðlinum) og UTF-16 (sem er framlenging á USC-2 og notar þannig 4 bæti fyrir tákn sem ekki eru í USC-2). Í okkar heimshluta hið minnsta (ef ekki austur-Asíu), tekur UTF-8 alltaf minna pláss fyrir texta viðkomandi svæðis.

Minna notaðar kóðanir eru t.d. UTF-EBCDIC (sem er ekki leyfilegt á internetinu, en er notað í stórtölvum) þar sem stafir fara upp í 5 bæti (í upphafi leyfði UTF-8 hins vegar líka upp í 6 bæti, en er nú takmarkað við 4). Kínverjar nota GB 18030 stafatöflu sem má líta á sem kóðun af Unicode. Standard Compression Scheme for Unicode (SCSU), notað t.d. af Microsoft SQL Server og Binary Ordered Compression for Unicode (BOCU-1) eru þjappanir fyrir Unicode.

Sem dæmi nota JSON og XML UTF-8 sem sjálfgefið, en bæði leyfa t.d. UTF-16, þó hefur verið búin til Internet JSON útgáfa (I-JSON), sem leyfir eingöngu UTF-8. Það er líka reglan í nýrri stöðum að leyfa eingöngu UTF-8.

Other Languages
Afrikaans: Unicode
Alemannisch: Unicode
አማርኛ: ዩኒኮድ
العربية: يونيكود
অসমীয়া: ইউনিক’ড
asturianu: Unicode
azərbaycanca: Unicode
Boarisch: Unicode
беларуская: Унікод
беларуская (тарашкевіца)‎: Юнікод
български: Уникод
বাংলা: ইউনিকোড
brezhoneg: Unicode
bosanski: Unicode
català: Unicode
ᏣᎳᎩ: ᏳᏂᎪᏛ
کوردی: یوونیکۆد
čeština: Unicode
Чӑвашла: Юникод
Cymraeg: Unicode
dansk: Unicode
Deutsch: Unicode
Ελληνικά: Γιούνικοντ
English: Unicode
Esperanto: Unikodo
español: Unicode
eesti: Unicode
euskara: Unicode
فارسی: یونی‌کد
suomi: Unicode
français: Unicode
Gaeilge: Unicode
galego: Unicode
ગુજરાતી: યુનિકોડ
עברית: יוניקוד
हिन्दी: यूनिकोड
hrvatski: Unikod
magyar: Unicode
Հայերեն: Յունիկոդ
interlingua: Unicode
Bahasa Indonesia: Unicode
Ilokano: Unicode
italiano: Unicode
日本語: Unicode
Basa Jawa: Unicode
ქართული: უნიკოდი
қазақша: Юникод
ಕನ್ನಡ: ಯುನಿಕೋಡ್
한국어: 유니코드
कॉशुर / کٲشُر: यूनिकोड
kurdî: Unicode
Кыргызча: Юникод
lietuvių: Unikodas
latviešu: Unikods
मैथिली: युनिकोड
олык марий: Unicode
മലയാളം: യൂണികോഡ്
монгол: Юникод
मराठी: युनिकोड
Bahasa Melayu: Unicode
မြန်မာဘာသာ: ယူနီကုဒ်
Plattdüütsch: Unicode
नेपाली: युनिकोड
नेपाल भाषा: युनिकोड
Nederlands: Unicode
norsk nynorsk: Unicode
norsk: Unicode
occitan: Unicode
ਪੰਜਾਬੀ: ਯੂਨੀਕੋਡ
polski: Unikod
português: Unicode
română: Unicode
русский: Юникод
संस्कृतम्: युनिकोड
саха тыла: Юникод
Scots: Unicode
srpskohrvatski / српскохрватски: Unikod
සිංහල: යුනිකෝඩ්
Simple English: Unicode
slovenčina: Unicode
slovenščina: Unicode
shqip: Unicode
српски / srpski: Unikod
Basa Sunda: Unicode
svenska: Unicode
తెలుగు: యూనికోడ్
тоҷикӣ: Юникод
Tagalog: Unikodigo
Türkçe: Unicode
ئۇيغۇرچە / Uyghurche: Unicode
українська: Юнікод
اردو: یونیکوڈ
Tiếng Việt: Unicode
walon: Unicôde
吴语: Unicode
მარგალური: იუნიკოდი
ייִדיש: יוניקאד
Yorùbá: Unicode
中文: Unicode
文言: 萬國碼
Bân-lâm-gú: Unicode
粵語: 統一碼