Unicode

Logo for The Unicode Consortium

Unicode er i digital sammenhæng en konventionel betegnelse for de almindeligt udbredte tegnsæt UTF-8, UTF-16, UTF-32 og eventuelt også ISO-10646. Disse tegnsæt har som kendetegn at være dels helt sammenfaldende og dels meget omfattende, idet de omfatter de fleste både nuværende og historiske skriftsprog og såvel supplerende skrifttegn såsom de der bruges i IPA-notation, node-notation og algebraisk notation. I 2015 var mere end 120.000 skrifttegn omfattet (ISO 2014, Introduction).

Unicodes oprindelse

I 1993 publicerede International Standards Organisation (ISO) et tegnsæt, ISO/IEC 10646, hvori defineredes et Universal Multiple-Octet Coded Character Set ofte forkortet Universal Character Set eller UCS.

(..)UCS har som formål at tilvejebringe et enkelt (eneste) kodet tegnsæt for [den digitale transskription] af den skriftlige form af alle verdens sprog og en lang række øvrige symboler der måtte bruges i sammenhæng med disse sprog. Det er hensigten ikke kun at omfatte sprog af i dag, men også fortidens sprog og de tilføjelser som findes nødvendige i fremtiden. (CEN 1999, Origins and aims of the UCS) [1]

UTF-8

Samme år opfandt Ken Thompson en metode hvorved UCS kunne implementeres på Unix-platformen: File system safe UCS transformation format (FSS/UTF), i kort tid kendt som UTF-2 og senere omdøbt til UTF-8. Dette engagement var primært praktisk, og blev realiseret på den - ikke ret brugte - Plan 9 styresystemet.(Kuhn 2009, Who invented UTF-8?) Ken Thompsons indsats var til dels også ansporet af den interesse som UCS ideen tiltrak fra ledende parter i computerindustrien, fokuseret i X/Open Joint Internationalization Group med repræsentation af eksempelvis IBM. Xerox og Apple havde årene forinden initieret The Unicode Consortium (Unicode 2015). I 1996 publicerede ISO deres overensstemmende specifikation af UTF-8. Ligeledes i 1996 kom RFC-2044, publiceret af IEEE, der også beskrev UTF-8.

Organisationerne The Unicode Consortium og ISO (ved arbejdsgruppen JTC1/SC2/WG2), startede deres virke i slutningen af 1980'erne. Det er disse organisationer der vedligeholder UCS. I dag koordineres deres research og publikationer for at undgå uoverensstemmelser i Unicode-formatet - specielt for at undgå uoverensstemmelser i det faktiske tegnsæt der menes omfattet.

Tekniske karakteristika

Grundlæggende beskæftiger computere sig udelukkende med binære tal. Arkiveringen af bogstaver og andre skrifttegn kommer som følge i stand ved tildelingen af en numerisk kode. Før Unicode var - og den dag i dag er - der hundredvis af forskellige indkodningssystemer beregnet allokeringen af disse tegn-tal, se herfor eksempelvis (KreativeKorp 2014). Reelt set erstatter Unicode den store mængde af forskellige internationalt standardiserede tegnsæt på forskellige platforme.

I modsætning til eksempelvis ASCII og ISO 8859 tegnsæt er der ikke nogen ligetil mulighed for at UCS numre kan repræsenteres med en enkelt byte - de 8 bit giver kun 256 forskellige tegn: For at præsentere UCS talrækken bliver der brugt flere bytes; det er en multi-byte encoding.

Hele UCS omfatter 31 bit. De allerede værende tegnsæt blev repræsenteret i de første 16 bit (2^16=65.536), og kaldt for Basic Multilingual Plane, forkortet til BMP. BMP er senere udvidet til 21 bit, sådan nogenlunde - med hexadecimal notation talrækken fra 0x000000 til 0x10FFFF, over 1 million tegn-tal. Denne talrække er dog langt fra implementeret (Kuhn 2009, What are UCS and ISO 10646?). Det gængse Unicode tegnsæt er indeholdt i BMP, og mere konkret talrækken fra 0x000000 til 0x10FFFF, hexadecimal notation.

UTF-8

UCS Transformation Format 8, specifikt forkortet UTF-8 findes specificeret hos ISO, IEEE og The Unicode Consortium (Kuhn 2009, What is UTF-8?).

  • Ifølge konvention bruges maksimalt 4 bytes.
  • Første byte i en byte-sekvens er enten enkeltstående, eller del i en multibyte sekvens.
  • En enkeltstående byte er mindre end 0x80, i decimal notation 128, dvs. 7 bit. Disse bits omfatter ascii tegnene.
  • Første byte i en multibyte sekvens viser hvor mange efterfølgende bytes der hører med, ved at sætte de højest betydende bits til 1, efterfulgt af 0: 2-bytes 110x xxxx (binær notation); 3-bytes 1110 xxxx (binær notation).
  • Følgende bytes i en multibyte sekvens har de to mest betydende bits sat til henholdsvis 1 og 0: 10xx xxxx (binær notation).
Andre transformationer
  • UCS-2 og UTF-16 — to funktionelt identiske 16-bit sekvens metoder
  • UCS-4 og UTF-32 — to funktionelt identiske 32-bit sekvens metoder
  • UTF-7 — en ikke særligt brugt 7-bit variabel længde indkodning.
  • UTF-EBCDIC — en 8-bit variabel længde indkodning som maksimerer kompatibiliteten med EBCDIC.

Windows bruger hovedsageligt UTF-16, mens det hos Unix-[kilde mangler] og GNU/Linux-systemer i højere grad er op til den enkelte applikation at kunne håndtere Unicode - men Linux-kernen er også kompatibel med UTF-8.

I flere Windows programmer, bl.a. Word kan man skrive Unicode tegnene, ved at taste koden og derefter Alt + x. I GNU skrive-programmet Vim kan man i Ex-mode taste 'ga', hvorefter decimal-, oktal- og hexadecimal-notation for tegnet under cursoren vises nederst på skærmen - det inkluderer også multibyte tegn.

Se også

Wikimedia Commons har medier relateret til:

Eksterne links

  • "X/Open", Computer Desktop Encyclopedia, The Computer Language Company Inc., 1981-2015
Specifikationer
Transformationer
Unicode font

Kilder

Noter

  1. ^ Citeret: The Universal Multiple-Octet Coded Character Set, more simply known as the UCS, is intended to provide a single coded character set for the encoding of the written forms of all the languages of the world and of a wide range of additional symbols that may be used in conjunction with such languages. It is intended not only to cover languages in current use, but also languages of the past and such additions as may be required in the future.

Medier brugt på denne side

New Unicode logo.svg
Unicode logo used on the Unicode Consortium website launched on 17 July 2019 (https://home.unicode.org/). Replaces the red Unicode logo.svg with different typeface for the word "Unicode" that was used on the old website.