miniatyr|Logotypen för Unicode Unicode är en branschstandard för hur datorer ska hantera text skriven i olika skriftsystem. Unicode är utvecklad tillsammans med den internationella standarden Universal Coded Character Set och publicerad på internet och i bokform. Unicode består av en repertoar med fler än 100 000 skrivtecken. Ett av de viktigaste målen är att alla tecken i världens alla skriftsystem ska finnas med: bokstäver, kinesiska tecken, siffror, skiljetecken, matematiska symboler, och så vidare. Unicode består även av ett antal metoder för att lagra tecknen i datorer, bland annat UTF-8 och UTF-16. Även en serie teckenegenskaper definieras, som exempelvis: huruvida ett tecken är en bokstav, siffra, skiljetecken, om en bokstav är en versal eller gemen, med mera. Unicode ger även en beskrivning hur normalisering ska gå till och i vilken ordning tecken ska visas när tecken ur höger-till-vänster-skriftsystem (till exempel arabiska) används. En separat Unicode-standard ger en grundläggande sorteringsordning, som sedan kan anpassas till olika språk.

Unicode-konsortiet är en ideell organisation grundad för att styra utvecklingen av Unicodestandarden och består av representanter från bland annat mobil- och datortillverkare, till exempel Apple, Microsoft, Facebook och Google men även lingvister och typografer.

Bakgrund och utveckling Unicode initierades av Apple computer, inc. (Mark Davis) och Xerox Corporation (Joe Becker, Lee Collins) år 1980, men först 1991 bildades Unicodekonsortiet.

Unicode är tänkt att ersätta flera hundra äldre kodningar som ASCII, SJIS, ISO 8859-1, med flera. Syftet är att få en världsgemensam teckenkodning som fungerar för alla, oavsett språk eller datorsystem. Unicode försöker så långt som möjligt vara kompatibelt med äldre standarder. Man ska kunna ta en text, omvandla den till Unicode och sedan tillbaka och få tillbaka texten likadan. Detta innebär bland annat att tecken från alla gamla teckenkodningsstandarder, inklusive de-facto standarder, tagits med. En del ej rekommenderade äldre standarder, såsom fransk 7-bitskodning stöds formellt, men avråds från, eftersom det har skapat parallella sätt att lagra tecken.

Fördelen med att införa Unicode är att kunna översätta datadokument, webbsidor, program och så vidare till valfritt språk utan tekniskt krångel. Med tidigare standarder gick det inte så bra, eftersom varje standard bara täckte ett mindre antal (eller ett enda) språk. För de flesta språk (även svenska) fanns ett antal olika kodningar utvecklade av olika tillverkare. Att överföra text via filer eller e-brev orsakade lätt problem. På japanska kallas problemet Mojibake. Översättningar kunde medföra tekniska problem vid konvertering av olika kodningar och teckensnitt. Med Unicode har dessa problem förpassats till dåtid. Exempel: Wikipedia finns på drygt 200 språk, i allmänhet utan tekniska problem. Man kan blanda språk på samma sida. En artikel om en kinesisk eller arabisk stad kan ha originalnamnet med i artikeln.

Många mindre språk med annorlunda skriftspråk har haft väldigt liten tillgång till mjukvara på det egna språket. De har haft svårt att skriva och ta emot dokument, webbsidor och e-brev på sitt eget språk innan Unicode infördes.

Idag används Unicode i bland annat Windows, Mac OS, Symbian OS, GNU/Linux, Oracle, Sybase och andra system inklusive mobiltelefoner. Unicode infördes exempelvis i Microsofts Officepaket 1997, vilket möjliggjorde att dokument kunde hanteras utan en speciell version av Officepaketet avsedd för det alfabet användaren föredrog, i den mån en sådan version fanns. Innan dess kunde till exempel en japan som jobbade i USA inte läsa japanska Word-dokument utan att ha det japanska Officepaketet installerat.

Skriftsystem som finns med i Unicode Målet med Unicode är att alla skrivtecken i världens alla skriftsystem ska finnas med: bokstäver, logogram, siffror, skiljetecken, matematiska symboler, med mera. Detta även för skriftsystem som inte längre används aktivt.

Unicode har tecken för i princip alla skriftsystem som används idag. Dessutom finns bland annat tekniska symboler, matematiska symboler, symboler för att skriva musik, internationella fonetiska alfabetet och även symboler för APL med.

Fler skrivsystem har lagts till och läggs till, inklusive historiska skrivsystem (som till exempel runskrift) som inte längre används. Dessutom lägger man till tecken till skriftsystem som redan finns med, liksom symboler. Däremot har man sagt nej till skrivsystem som klingonska (används inte ens av klingonsällskapet, och symbolerna är egentligen scendekor). För en del konstgjorda skriftsystem som bara används av en snäv krets entusiaster finns icke-standardiserade allokeringar inom kodområdet för privat användning. En del av dessa skriftsystem kan på sikt komma att bli formellt standardiserade.

Unifiering Det finns långt över tusen skriftspråk i världen, men många använder samma tecken, eller nästan samma tecken. Precis som i äldre, mer begränsade kodningar, låter man i Unicode förena likadana tecken i olika språk till samma teckenkod, vilket kallats unifiering. Oftast är det trivialt. A–Z i engelska är till exempel samma som A–Z i svenska. Några problem har det blivit även med latinska tecken, där några tecken avvikit något lite i utseende mellan två länder. De unifierades ibland till samma tecken i Unicode, men man har fått skilja dem åt efteråt. Till exempel turkiska Ş används också på rumänska men där med "fritt hängande" krok, vilket senare har införts i Unicode, men som ännu inte stöds i de flesta datorer. I praktiken används Ş på rumänska i datorer eftersom det stöds både av Unicode och aktuell äldre kodning, vilket S med fri krok under inte gjort. Rumänska stilmedvetna har beklagat sig.

Man har dock valt att (liksom i äldre kodningar) helt skilja på tecken som ser likadana ut men hör hemma i olika skriftsystem. Till exempel skiljer man på grekiskt, kyrilliskt och latinskt A. Dels för att de som sagt hör hemma i olika skriftsystem, men även för att de har lite olika egenskaper; i detta fall ser den motsvarande gemena bokstaven olika ut i latinska skriftsystemet och i grekiska skriftsystemet. Även inom vissa skriftsystem skiljer man på tecken med lika utseende: decimala siffror kodas alltid skilt från bokstäver (men det gäller inte andra sorters siffror).

För kinesiska, koreanska och japanska har unifieringen gjorts av en arbetsgrupp som kallas IRG (Ideographics Rapporteur Group). Den består av representanter från Japan, Kina, Taiwan, Vietnam, Sydkorea, och numera även Nordkorea. De har utgått från historiska och semantiska principer. Den stavningsreform som resulterade i vad som brukar kallas förenklad kinesiska är inte ett separat skriftsystem, inte heller bara glyfvarianter av de tecken som används i traditionell stavning (traditionell kinesiska). Den reformerade stavningen använder helt enkelt andra (enklare) kinesiska tecken. Dock infördes endast ett mycket litet antal nya kinesiska tecken i och med stavningsreformen. Även historiska kinesiska tecken finns med. Det har hittills resulterat i att över 71 000 kinesiska tecken har kodats i ISO/IEC 10646 och Unicode (5.0).

Teknik Varje existerande tecken från världens alla skriftsystem tilldelas ett heltal, en så kallad kodpunkt (eng: code point). När man refererar till en kodpunkt i beskrivande text, görs det på formen "U+" följt av 4–6 hexadecimala siffror. Exempelvis anges kodpunkten för α (grekiska lilla alfa) som U+03B1 (det decimala numret, här 945, undviks för att inte riskera förväxling och förvirring). Ofta brukar även kodpunktens namn inkluderas; U+03B1 GREEK SMALL LETTER ALPHA.

En del kodpunkter står för annat än tecken, såsom kontrollkoderna från ASCII, anvisningar för program som hanterar texten och kodpunkter som tillsammans bildar tecken (till exempel accenter kan kombineras med intilliggande bokstav: akut accent och e blir é). Standarden innehåller regler för normalisering av tecken som kan representeras på olika sätt.

Kodpunkterna serialiseras till en följd av oktetter (byte), som kan lagras i filer eller överföras mellan datorsystem. Oktetter har åtta bitar, för få för Unicodes kodpunkter. De serialiseringar som används kallas UTF-8, UTF-16BE, UTF-16LE, UTF-32BE och UTF-32LE.

Kodpunkterna är sammanlagt 17·216 (drygt en miljon) stycken. Man konstaterade att man behöver tillgång till fler tecken än 216, men att dessa, som kan representeras med UTF-16, räcker med god marginal. Alla kodpunkter kan representeras i 21 bitar, men så som datorerna arbetar är det ofta effektivare att allokera 32 bitar per kodpunkt. Drygt 250 000 kodpunkter har allokerats, varav drygt 100 000 för tecken, formateringskoder etcetera, de övriga bland annat för UTF16-mekanismen och framförallt för privat användning.

Unicodes kodpunkter är uppdelade i 17 plan. Varje plan har plats för 65 536 (216) kodpunkter. Det första planet (plan 0), det så kallade Basic Multilingual Plane (BMP), är där de flesta tecken finns allokerade (än så länge). BMP innehåller tecknen för nästan alla moderna skriftspråk, samt ett stort antal symboler som används i text. Av kodpunkterna i användning är runt 70 000 kinesiska och drygt 11 000 koreanska tecken, varav i BMP, de flesta i det tredje planet (plan 2), Supplementary Ideographic Plane.

Varje plan indelas dels i rader omfattande 256 (28) tecken, dels i block. De senare är "areor" av varierande storlek reserverade för (delar av) teckensystem. Till exempel: hebreiska tecken hamnar i första hand i blocket Hebrew som sträcker sig från U+0590 till U+05FF.

Två plan utöver BMP används för ”grafiska” tecken. Plan 1, Supplementary Multilingual Plane (SMP), används mestadels för historiska skriftsystem, men även till exempel för symboler för att skriva musik. Och för emojier, vilket kraftigt ökat användningen av plan utöver BMP på nätet. Plan 2, Supplementary Ideographics Plane (SIP), används för över 50 000 ovanliga kinesiska tecken, de flesta historiska (en del direkta felskrivningar i ordböcker), men även en del tecken som används i modern text. Plan 3, Tertiary Ideographic Plane (TIP) har reserverats för fler kinesiska tecken, och några tusen tecken har allokerats (skrivet 2022). Det diskuteras att ta med tecken som inte använts på tusentals år såsom Orakelbensskrift och andra, men det är många tusen tecken ytterligare. Tio plan (plan 4–13) har ännu inte tilldelats någon funktion.

Ett plan (plan 14), Supplementary Special-purpose Plane, används för diverse koder, inte för tecken.

Dessutom är 6400 tecken i BMP plus två hela plan (plan 15 och 16, 131072 tecken) reserverade för ”privat användning”, där de som skriver och läser texten får komma överens vad de betyder. Ett område är reserverat för operativsystemets privata tecken, till exempel Apple-loggan i Macintosh.

Unicode för Asiens språk Bland de tekniskt mer komplicerade funktionerna i Unicode är de för höger-till-vänster-riktade skriftspråk såsom arabiska. Texten ska enligt Unicode-standarden (samt flera tidigare standarder) lagras i den ordning man läser. Man kan blanda tecken med olika skrivriktning.