Unicode er en standard for tegnkoding designet for å lette behandling , overføring og visning av tekster fra en rekke språk og tekniske disipliner, samt klassiske tekster fra døde språk . Begrepet Unicode kommer fra de tre målene som forfølges: universalitet, enhetlighet og unikhet. [ 1 ]
Unicode definerer hvert tegn eller symbol med et navn og en numerisk identifikator , kodepunktet . Den inkluderer også annen informasjon for riktig bruk av hvert tegn, for eksempel skrivesystem, kategori, retningsbestemthet, store bokstaver og andre attributter. Unicode behandler alfabetiske tegn, ideografiske tegn og symboler likt, noe som betyr at de kan blandes i samme tekst uten å bruke merker eller kontrolltegn. [ 2 ]
Denne standarden vedlikeholdes av Unicode Technical Committee (UTC), integrert i Unicode Consortium , hvorav selskaper som: Microsoft , Apple , Adobe , IBM , Oracle , SAP , Google eller Facebook , institusjoner som Berkeley University , eller Indias regjering og individuelle utøvere og lærde. [ 3 ] Unicode-konsortiet opprettholder et nært forhold til ISO/IEC , som det siden 1991 har opprettholdt avtalen om å synkronisere sine standarder som inneholder de samme tegnene og kodepunktene. [ 4 ]
Opprettelsen av Unicode har vært et ambisiøst prosjekt for å erstatte eksisterende tegnkodingssystemer , hvorav mange var sterkt begrenset i størrelse og inkompatible med flerspråklige miljøer. Unicode har blitt det mest omfattende og komplette tegnkodingsskjemaet, og er det dominerende innen internasjonalisering og lokal tilpasning av dataprogramvare . Standarden har blitt akseptert i et betydelig antall nyere teknologier, som XML , Java og moderne operativsystemer .
Den fullstendige beskrivelsen av standarden og tegntabellene er tilgjengelig på den offisielle Unicode-nettsiden. Den fullstendige referansen publiseres også i bokform hver gang en ny hovedversjon ferdigstilles. Den digitale versjonen av denne boken er tilgjengelig gratis. Revisjoner og tillegg publiseres uavhengig.
Unicode inkluderer alle tegn i vanlig bruk i dag. Versjon 15.0 inneholder 149 186 tegn fra alfabeter, ideografiske systemer og samlinger av symboler (matematisk, teknisk, musikalsk, ikoner...). Antallet vokser med hver versjon. [ 5 ]
Unicode inkluderer moderne skriftsystemer som: Latin ; utdødde historiske skrifter, for akademiske formål, for eksempel: kileskrift , og runeskrift . Blant de ikke-alfabetiske karakterene som er inkludert i Unicode er musikalske og matematiske symboler, spillebrikker som dominobrikker, piler, ikoner, etc.
I tillegg inkluderer Unicode diakritiske tegn som uavhengige tegn som kan kombineres med andre tegn og har forhåndsdefinerte versjoner av de fleste bokstaver med diakritiske symboler som er i bruk i dag, for eksempel understrekede vokaler på spansk.
Unicode er en standard i stadig utvikling, og nye karakterer legges til hele tiden. Visse alfabeter, foreslått av forskjellige grunner, for eksempel det klingonske alfabetet, har blitt forkastet . [ 6 ]
Som allerede nevnt, er Unicode synkronisert med ISO/IEC-standarden kjent som UCS eller Universal Character Set. Fra et teknisk synspunkt inkluderer eller er den kompatibel med tidligere kodinger som ASCII7 eller ISO 8859-1 , nasjonale standarder ANSI Z39.64, KS X 1001, JIS X 0208, JIS X 0212, JIS X 0213, GB 2312, GB 18030, HKSCS og CNS 11643 , spesielle kodinger fra programvareprodusenter som Apple, Adobe, Microsoft, IBM, etc. Unicode reserverer også plass til programvareprodusenter som kan lage utvidelser til eget bruk. [ 7 ]
Det grunnleggende elementet i Unicode-standarden er tegnet . En karakter anses å være det minste elementet i et meningsfullt skrivesystem. Unicode-standarden koder for de essensielle tegnene – grafemene – ved å definere dem abstrakt og overlate den visuelle representasjonen (størrelse, dimensjon, font eller stil) til programvare som håndterer det, for eksempel tekstbehandlere eller nettlesere . Bokstaver, diakritiske tegn, skilletegn, ideogrammer, stavelsestegn, kontrolltegn og andre symboler er inkludert. Tegn er gruppert i alfabeter eller skriftsystemer. Karakterer fra forskjellige alfabeter anses å være forskjellige, selv om de deler form og betydning.
Tegn identifiseres med et nummer eller kodepunkt og deres navn eller beskrivelse. Når en kode har blitt tildelt et tegn, sies det at tegnet er kodet. Kodeplassen har 1 114 112 mulige posisjoner (0x10FFFF). Kodepunkter er representert ved bruk av heksadesimal notasjon ved å legge til prefikset U+. Den heksadesimale verdien er polstret med nuller opp til 4 heksadesimale sifre når det er nødvendig; hvis den er lengre enn 4 sifre legges det ikke til nuller.
Koderomsblokker inneholder punkter med følgende informasjon: [ 8 ]
Unicode inkluderer en tegndannende mekanisme for å utvide repertoaret av støtte for eksisterende symboler. Et grunntegn er supplert med tegn: diakritiske tegn, skilletegn eller rammer. Hver karakters type og attributter definerer rollen de kan spille i en kombinasjon. Av denne grunn kan det være flere alternativer som representerer samme karakter. For enkel kompatibilitet med tidligere kodinger er forhåndskomponerte tegn gitt; i definisjonen av disse karakterene står det hvilke karakterer som er involvert i komposisjonen.
En gruppe av påfølgende tegn, uansett type, danner en sekvens. I tilfelle flere sekvenser representerer det samme settet med essensielle tegn, definerer ikke standarden en av dem som "riktig", men anser dem som likeverdige. For å identifisere disse ekvivalensene, definerer Unicode de kanoniske ekvivalens- og kompatibilitetsekvivalensmekanismene basert på å oppnå normaliserte former for strengene som skal sammenlignes.
I Unicode-standarden kalles østasiatiske ideogrammer (populært kalt "kinesiske tegn") for "han-ideogrammer." Disse ideogrammene ble utviklet i Kina og tilpasset av nærliggende kulturer til eget bruk. [ 9 ] [ 10 ] Japan , Korea og Vietnam utviklet alle sine egne alfabetiske eller stavelsessystemer for bruk i kombinasjon med kinesiske symboler: hiragana og katakana (i Japan), hangul (i Korea) og yi (i Vietnam). Den naturlige utviklingen av skriftsystemer og de forskjellige øyeblikkene for inntreden av karakterer i forskjellige kulturer har markerte forskjeller i ideogrammene som brukes. Unicode betrakter de forskjellige versjonene av ideogrammene som varianter av samme abstrakte karakter, det vil si som et resultat av bruken av en annen font i hvert tilfelle, og anser de nasjonale variantene som tilhørende samme skriftsystem. Den originale versjonen av standarden ble utviklet fra eksisterende industristandarder i de berørte landene.
Organet som har ansvaret for å utvikle karakterrepertoaret er Ideographic Rapporteur Group (IRG). IRG er en integrert arbeidsgruppe i ISO/IEC JTC1/SC2/WG2, inkludert Kina , Hong Kong , Macao , Taipei Computer Association , Singapore , Japan , Sør-Korea , Nord-Korea , Vietnam og USA . [ 9 ]
CJK-karakterdatabasen heter Unihan og inneholder også tilleggsinformasjon om betydning, konverteringer, data som er nødvendig for å bruke dem på de forskjellige språkene som bruker dem. Blokkene som beskriver dette repertoaret er vist nedenfor. IRG definerer karakterene til de syv forente gruppene; de neste to gruppene inneholder tegn for kompatibilitet med tidligere standarder.
Blokkere | kodeområde | Kommentarer |
CJK enhetlige ideogrammer | 4E00-9FFF | Ofte brukte ideogrammer. Kodestørrelse: 2 byte. |
CJK Unified Ideograms – utvidelse A | 3400-4DFF | Sjelden brukte ideogrammer. Kodestørrelse: 2 byte. |
CJK Unified Ideograms – utvidelse B | 20000-2A6DF | Sjelden brukte og historiske ideogrammer. |
CJK Unified Ideograms – utvidelse C | 2A700-2B73F | Sjelden brukte og historiske ideogrammer. |
CJK Unified Ideograms – utvidelse D | 2B740-2B81F | Sjelden brukte og historiske ideogrammer. |
CJK Unified Ideograms – utvidelse E | 2B820-2CEAF | Sjelden brukte og historiske ideogrammer. |
CJK Unified Ideograms – utvidelse F | 2CEB0-2EBEF | Sjelden brukte og historiske ideogrammer. |
kompatibilitetsideogrammer | F900-FAFF | Duplikater, unifiserbare varianter og bedriftskarakterer. Kodestørrelse: 2 byte. |
Tillegg for kompatibilitetsideogrammer | 2F800-2FA1F | forenlige varianter. |
Det innrømmes at oppgaven med å inkludere ideogrammer i standarden aldri vil bli ferdig, hovedsakelig fordi opprettelsen av nye ideogrammer fortsetter. For å fylle mulige mangler tilbyr Unicode en mekanisme som tillater representasjon av de manglende symbolene kalt "ideografiske beskrivelsessekvenser". Den er basert på at i praksis kan alle ideogrammer brytes ned i mindre biter som igjen er ideogrammer. Selv om representasjon av et symbol ved hjelp av en sekvens er mulig, spesifiserer standarden at når en kodet versjon eksisterer, må bruken foretrekkes. Det finnes ingen metode for "kanonisk dekomponering" av ideogrammer eller ekvivalensalgoritmer, så operasjoner på teksten, som søk eller sortering, kan mislykkes.
Unicode definerer 12 kontrolltegn for beskrivelsen av ideogrammer som representerer forskjellige muligheter for romlig kombinasjon av andre tegn.
Standarden ble utformet med følgende mål:
Settet med tegn kodet av Unicode er Unicode Character Database (UCD). I tillegg til navn og kodepunkt inneholder den mer informasjon: alfabetet som den tilhører, navn, klassifisering, store bokstaver, orientering og andre bruksformer, standardiserte varianter, kombinasjonsregler, etc.
Formelt sett er databasen delt inn i fly og disse igjen i områder og blokker . Med unntak er kodede tegn gruppert i koderommet etter kategorier som alfabet eller skriftsystem, slik at relaterte tegn finnes tett sammen i kodingstabeller.
PlanerFor enkelhets skyld har koderommet blitt delt inn i store grupper kalt fly . Hvert fly inneholder maksimalt 65 536 tegn. Gitt et kodepunkt uttrykt i heksadesimal, bestemmer de siste 4 sifrene plasseringen av tegnet i planet.
De ulike planene er delt inn i adresseringsområder basert på de generelle typene de inkluderer. Denne inndelingen er konvensjonell, ikke regulert og kan variere over tid. Arealene er igjen delt inn i blokker. Blokkene er normativt definert og er påfølgende områder av koderommet. Blokkene brukes til å danne de trykte tegntabellene, men bør ikke tas som definisjoner av meningsfulle grupper av tegn.
Unicode-kodepunkter identifiseres med et heltall. Avhengig av arkitekturen vil en datamaskin bruke enheter på 8, 16 eller 32 biter for å representere disse heltallene. Unicodes kodingsskjemaer regulerer måten kodepunkter skal konverteres til maskinelt håndterbare enheter.
Unicode definerer tre former for koding under navnet UTF (Unicode transformation format: Unicode transformation format): [ 11 ]
Kodeskjemaer er begrenset til å beskrive hvordan kodepunkter er representert i maskinlesbart format. Fra de 3 identifiserte skjemaene er 7 kodeskjemaer definert.
Kodeskjemaer omhandler hvordan kodet informasjon serialiseres. [ 11 ] Sikkerheten i informasjonsutveksling mellom heterogene systemer krever implementering av systemer som gjør det mulig å bestemme riktig rekkefølge av biter og bytes og garanterer at rekonstruksjonen av informasjonen er korrekt. En grunnleggende forskjell mellom prosessorer er rekkefølgen som byte er ordnet i 16-biters og 32-biters ord, som kalles endianness . Kodeordninger skal sikre at enden av en kommunikasjon vet hvordan den mottatte informasjonen skal tolkes. Fra de 3 formene for koding er 7 ordninger definert. Selv om de deler navn, bør ikke kodingsskjemaer og skjemaer forveksles.
kodingsskjema | Endianness | Støttet stykkliste |
UTF-8 | Ikke aktuelt | Ja |
UTF-16 | Big Endian eller Little Endian | Ja |
UTF-16BE | big-endian | Nei |
UTF-16LE | liten endian | Nei |
UTF-32 | Big Endian eller Little Endian | Ja |
UTF-32BE | big-endian | Nei |
UTF-32LE | liten endian | Nei |
Unicode definerer et spesielt merke, Byte Order Mark (BOM ), ved starten av en fil eller en kommunikasjon for å gjøre bytebestilling eksplisitt. Når en overordnet protokoll spesifiserer byte-rekkefølgen, er flagget ikke påkrevd og kan utelates, noe som resulterer i de ovenfor oppførte skjemaene med suffiks med BE eller LE . I UTF-16- og UTF-32-skjemaene, som støtter BOM, hvis dette ikke er spesifisert, antas byte-rekkefølgen å være big-endian .
Kodingsenheten i UTF-8 er byte, så du trenger ikke en indikasjon på byte-rekkefølge. Standarden verken krever eller anbefaler bruk av BOM, men støtter det som en markering av at tekst er Unicode eller som et resultat av konvertering fra andre skjemaer.
Unicode-prosjektet startet på slutten av 1987, etter diskusjoner mellom Joe Becker, Lee Collins og Mark Davis (ingeniører fra Apple- og Xerox -selskapene ). [ 12 ] Som et resultat av deres samarbeid ble det første utkastet til Unicode publisert i august 1988 under navnet Unicode88. [ 13 ] I denne første versjonen ble det ansett at bare tegnene som var nødvendige for moderne bruk ville bli kodet, så 16-bits koder ble brukt.
I løpet av 1989 ble samarbeidspartnere fra andre selskaper som Microsoft eller Sun Microsystems med . 3. januar 1991 ble Unicode Consortium dannet , og i oktober 1991 ble den første versjonen av standarden publisert. Den andre versjonen, som allerede inkluderte det han ideografiske skriptet , ble publisert i juni 1992. Nedenfor er en tabell med de forskjellige versjonene av Unicode-standarden med deres viktigste tillegg eller modifikasjoner.
Versjon | Dato | Utgivelse | Tilknyttet ISO/IEC 10646 -utgave | skriftene | tegn | |
---|---|---|---|---|---|---|
# | Bemerkelsesverdige tillegg | |||||
1.0 | oktober 1991 | ISBN 0-201-56788-1 (Vol. 1). | 24 | 7161 | Det innledende repertoaret dekker alfabetene: arabisk , armensk , bengalsk , bopomofo , kyrillisk , devanagari , georgisk , gresk/koptisk , gujarati , gurmukhi , hangul , hebraisk , hiragana , kannada , katakana , iya or , malaya , latin , lao , ugu , latin , thailandsk og tibetansk . [ 14 ] | |
1.0.1 | juni 1992 | ISBN 0-201-60845-6 (Vol.2). | 25 | 28.359 | Definerte det første settet med 20 902 enhetlige CJK -ideogrammer. [ 14 ] | |
1.1 | juni 1993 | ISO/IEC 10646-1:1993 | 24 | 34 233 | 4 306 Hangul-tegn er lagt til, mer til det originale settet på 2 350. Det tibetanske alfabetet er fjernet. [ 14 ] | |
2.0 | juli 1996 | ISBN 0-201-48345-9 | ISO/IEC 10646-1:1993 med endringer 5, 6 og 7 | 25 | 38.950 | Fjernet det originale settet med hangul-tegn; et nytt sett med 11 172 hangul-tegn legges til på et nytt sted. Det tibetanske alfabetet gjeninnføres på et nytt sted og med et annet tegnsett. Systemet med subrogerte koder er definert og plan 15 og 16 med tegn opprettes for privat bruk. [ 14 ] |
2.1 | mai 1998 | ISO/IEC 10646-1:1993 med endringer 5, 6 og 7, og to tegn fra endring 18 | 25 | 38.952 | Eurotegnet er lagt til . [ 14 ] | |
3.0 | september 1999 | ISBN 0-201-61633-5 | ISO/IEC10646-1:2000 | 38 | 49 259 | Cherokee -ideogrammer . Etiopiske , Khmer , mongolske , Myanmar , Ogham , Runic , Singalesiske , Syriske , Thaana , Unified Syllabary of Canadian Indians , og Yi skrift i tillegg til blindeskriftmønstre . [ 14 ] |
3.1 | mars 2001 | ISO/IEC10646-1:2000
ISO/IEC 10646-2:2001 |
41 | 94 205 | Lagt til deseret- , gotiske og etruskiske alfabeter , og symboler for moderne musikknotasjon , bysantinsk musikk og 42 711 enhetlige CJK - ideogrammer . [ 15 ] | |
3.2 | mars 2002 | ISO/IEC 10646-1:2000 med endring 1
ISO/IEC 10646-2:2001 |
Fire fem | 95 221 | Lagt til filippinske manus : Buhid , Hanunó'o , Tagalog og Tagbanwa . [ 15 ] | |
4.0 | april 2003 | ISBN 0-321-18578-1 | ISO/IEC 10646:2003 | 52 | 96 447 | Lagt til kypriotiske , Limbu , Linear B , Osmanya , Shavian , Tai Le og Ugarittiske stavelser , og I Ching heksagrammer . [ 15 ] |
4.1 | mars 2005 | ISO/IEC 10646:2003 med tillegg 1 | 59 | 97 720 | Buginesisk , glagolitisk , Kharoshthi , New Tai Lue , gammelpersisk , Syloti Nagri og Nifinagh aggregater . Koptisk er atskilt fra det greske alfabetet. Gamle greske symboler for musikk og nummerering. [ 15 ] | |
5.0 | juli 2006 | ISBN 0-321-48091-0 | ISO/IEC 10646:2003 med Amendment 1 og 2 og fire tegn fra Amendment 3 | 64 | 99 089 | Aggregater: balinesisk , kileskrift , n'ko (Mandé), phags-pa og fønikisk . [ 15 ] |
5.1 | april 2008 | ISO/IEC 10646:2003 pluss endringer 1, 2, 3 og 4 | 75 | 100 713 | Lagt til: Carian script , Cham , Kayah li , Lepcha script , Lycian alfabet , Lydian alfabet , Ol Chiki alfabet , Rejang , Saurashtra , Sundanesisk og Vai pensum . Hieroglyfene til Phaistos -platen , mahjong- og dominobrikkene . Viktige tillegg til burmesisk , amanuensisbokstaver og forkortelser brukt i middelaldermanuskripter , og tillegg av stor ß . [ 16 ] | |
5.2 | oktober 2009 | ISBN 978-1-936213-00-9 | ISO/IEC 10646:2003 pluss endringer 1 til 6 | 90 | 107 361 | Aggregater: Bamúm , Javanese , Lisu , Meetei Mayek , Samaritan , Tai Tham og Tai Viet . Devanagari har blitt utvidet med tillegg av sanskrit -alfabetet . Viktige utvidelser for Abkhaz , det enhetlige pensum for urbefolkningskanadiere, koptiske, Khamti Shan , Malay, Myanmar. Historiske symboler og karakterer som Gardiners egyptiske hieroglyfer , keiserlig arameisk , avestan , kaithi , gammel sør-arabisk og gammelturkisk er også lagt til . [ 17 ] |
6.0 | oktober 2010 | ISBN 978-1-936213-01-6 | ISO/IEC 10646:2011 | 93 | 109 449 |
Versjon 6.0 er den første store versjonen av standarden publisert utelukkende i elektroniske medier. Lagt til Mandaean , Batak og Brahmi , utvidelser av afrikanske språk som Tifinagh , Etiopisk og Bamúm . Andre viktige tillegg er: 222 CJK-ideogrammer, 1000 symboler inkludert emoji -piktogrammer , det nye offisielle symbolet for rupi og alkymistiske symboler samt utvidelser til karakterattributter og andre normative og algoritmiske modifikasjoner. [ 18 ] |
6.1 | 2012 | ISBN 978-1-936213-02-3 | ISO/IEC10646:2012 | 110 116 | Inkluderer utvidelser til flere eksisterende alfabeter; Betydelige tillegg til det arabiske alfabetet inkluderer 143 alfabetiske matematiske symboler, og Pollard Miao -alfabetene , Sorang Sompeng , Meroitic script , Chakma , Sharada-alfabetet og 13 uttrykksikoner. | |
6.2 | 2012 | ISBN 978-1-936213-07-8 | ISO/IEC 10646:2012 pluss symbol for tyrkisk lira. | 110 117 | Spesialpublikasjon for introduksjonen av den tyrkiske lira | |
6.3 | 2013 | ISBN 978-1-936213-08-5 | ISO/IEC 10646:2012 med tillegg | 110 122 | Revisjon av den toveis tekstalgoritmen med tillegg av 5 spesialtegn. Den nye toveisalgoritmen forbedrer den felles representasjonen av tekster fra forskjellige kilder og respekterer riktig rekkefølge på tegnene. | |
7.0 | 2014 | ISBN 978-1-936213-09-2 | ISO/IEC 10646:2012 med tillegg og rubeltegn | 112 956 | Legger til 23 nye skrivesystemer. | |
8.0 | 2015 | ISBN 978-1-936213-10-8 | ||||
9,0 | 2016 | ISBN 978-1-936213-13-9 | ||||
10,0 | 2017 | ISBN 978-1-936213-16-0 | 139 | 136 690 | Blant annet er Bitcoin -symbolet lagt til , 56 emoji-tegn og skrivesystemene: Masaram Gondi , Nü Shu , Soyombo og Zanabazar-firkantet mongolsk skrift . CJK enhetlig tegnutvidelse F introduseres. | |
11.0 | 5. juni 2018 | ISBN 978-1-936213-19-1 | 137 374 | Dogra, store bokstaver av georgiske Mtavruli, Gunjala Gondi, Hanifi Rohingya, Makassar, Medefaidrin, Old Sogdian, Sogdian og forskjellige symboler (5 nye CJK-forente ideogrammer, 66 ekstra emoji, copyleft, halvstjerne, ekstra astrologiske og kinesiske sjakksymboler Xiangqi ) | ||
12.0 | 5. mars 2019 | ISBN 978-1-936213-22-1 | 150 | 137 928 | Elimaic [ 19 ] | |
12.1 | 7. mai 2019 | ISBN 978-1-936213-25-2 | 137 929 | Legger til en enkelt karakter for Reiwa-tiden [ 20 ] | ||
13.0 | 10. mars 2020 | ISBN 978-1-936213-26-9 | 154 | 143.859 | Legger til 4 nye korasmiske alfabeter , Dhives Akuru , Kitan-språk [ 21 ] |