Unicode

fra Wikipedia, den gratis encyklopædi
Spring til navigation Spring til søgning
Unicode logo

Unicode (udtaler: Amerikansk engelsk [ ˈJuːnikoʊd ], britisk engelsk [ ˈJuːnikəʊd ]; Tysk [ ˈJuːnikoːt ]) er en international standard , hvor en digital kode defineres på lang sigt for hver meningsfuld karakter eller tekstelement i alle kendte skrivekulturer og tegnsystemer . Formålet er at eliminere brugen af ​​forskellige og inkompatible koder i forskellige lande eller kulturer. Unicode suppleres konstant med tegn fra andre skrivesystemer af Unicode -konsortiet .

ISO 10646 er den praktisk betegnelse for Unicode -tegnsættet, der bruges af ISO ; det betegnes der som Universal Coded Character Set (UCS).

historie

Konventionelle computertegnsæt indeholder kun et begrænset antal tegn; med vestlige tegnkodninger er denne grænse normalt 128 (7 bit ) kodepositioner - som i den velkendte ASCII -standard - eller 256 (8 bit) positioner, som f.eks. B. ISO 8859-1 (også kendt som Latin-1 ) eller EBCDIC . Efter fradrag af kontroltegnene kan 95 elementer til ASCII og 191 elementer til 8-bit ISO-tegnsæt vises som skrifttyper og specialtegn . Disse tegnkodninger tillader kun få sprog at blive repræsenteret i den samme tekst på samme tid, hvis man ikke formår at bruge forskellige skrifttyper med forskellige tegnsæt i en tekst. Dette hindrede den internationale udveksling af data betydeligt i 1980'erne og 1990'erne.

ISO 2022 [1] var et første forsøg på at kunne repræsentere flere sprog med kun en tegnkodning. Kodningen bruger escape-sekvenser for at kunne skifte mellem forskellige tegnsæt (f.eks. Mellem Latin-1 og Latin-2). Systemet fangede imidlertid kun i Østasien. [2]

Joseph D. Becker fra Xerox skrev det første udkast til et universelt tegnsæt i 1988. Ifølge de oprindelige planer skulle dette 16-bit tegnsæt kun kode tegnene i moderne sprog:

”Unicode prioriterer højere nytteværdi for fremtiden end at bevare tidligere antikviteter. Unicode henvender sig i første omgang til de tegn, der udgives i moderne tekst (f.eks. I sammenslutningen af ​​alle aviser og blade, der blev trykt i verden i 1988), hvis antal uden tvivl er langt under 2 14 = 16,384. Udover disse tegn i moderne brug kan alle andre defineres til at være forældede eller sjældne, det er bedre kandidater til registrering til privat brug end til at overbelaste den offentlige liste over generelt nyttige Unicodes. "

”Unicode lægger større vægt på at sikre brugervenlighed i fremtiden end på at bevare tidligere antikviteter. Unicode henvender sig primært til alle karakterer, der udgives i moderne tekster (f.eks. I alle aviser og blade i verden i 1988), hvis antal uden tvivl er langt under 2 14 = 16.384. Andre tegn, der går ud over disse aktuelle tegn, kan betragtes som forældede eller sjældne. Disse skal registreres i en privat tilstand i stedet for at udfylde den offentlige liste over generelt nyttige Unicodes. "

- Joseph D. Becker [3]

I oktober 1991 [4] , efter flere års udvikling, blev version 1.0.0 af Unicode -standarden udgivet, som på det tidspunkt kun kodede de europæiske, mellemøstlige og indiske scripts. [5] Det var først otte måneder senere, efter at Han Unification var fuldført, blev udgivet version 1.0.1, kodet for de første østasiatiske tegn. Med offentliggørelsen af ​​Unicode 2.0 i juli 1996 blev standarden udvidet fra de originale 65.536 til de nuværende 1.114.112 kodepunkter, fra U+0000 til U+10FFFF . [6]

Versioner

version dato Skrivesystemer Karakter Udvidelser
1.0.0 [7] Oktober 1991 24 7.161 Første version: Arabisk , armensk , bengali , Bopomofo , kyrillisk , Devanagari , georgisk , græsk og koptisk , gujarati , Gurmukhi , hangul , hebraisk , Hiragana , Kannada , Katakana , Lao , latin , malayalam , Oriya , tamil , telugu , thai og tibetansk ; Valutasymbol
1.0.1 [8] Juni 1992 25. 28.359 Unified Chinese-Japanese-Korean characters ( CJK characters ; see also Unicode block Unified CJK ideograms )
1.1 [9] Juni 1993 24 34.233 Yderligere koreanske stavelser , fjernelse af det tibetanske skrift fra standarden, [10] dingbats , lange s
2.0 [11] Juli 1996 25. 38.950 Ny Unicode -blok til Hangeul -stavelsestegn, genindførelse af det tibetanske script [10]
2.1 [12] Maj 1998 25. 38.952 Eurosymbol og et symbol til udskiftning af objekter
3.0 [13] September 1999 38 49.259 Syrisk alfabet , Thaana -alfabet , singalesisk alfabet , burmesisk alfabet , etiopisk alfabet , Cherokee -alfabet , Cree -alfabet , Ogham , runer , Khmer -alfabet , mongolsk alfabet , braille -alfabet , Yi , yderligere CJK -tegn
3.1 [14] Marts 2001 41 94.205 Gammelt italiensk alfabet , gotisk alfabet , Deseret alfabet , musikalsk notation , andre CJK -tegn
3.2 [15] Marts 2002 45 95.221 Baybayin , Hanunó'o , Buid script , Tagbanuwa script
4,0 [16] April 2003 52 96.447 Limbu -script , Tai Nüa , lineært script B , ugaritisk script , Shaw -alfabet , Osmaniya -script , cypriotisk script
4.1 [17] Marts 2005 59 97.720 Koptisk skrift (adskilt fra det græske alfabet), Tai Lü , Lontara , Glagolitic skrift , Nuschuri , Tifinagh skrift , Sylheti Nagari , persisk kileskrift , Kharoshthi skrift
5,0 [18] Juli 2006 64 99.089 N'Ko , balinesisk skrift , Phagpa -skrift , fønikisk skrift , kileskrift
5.1 [19] April 2008 75 100.713 Sundanesisk script , Lepcha -script , Ol Chiki , Vai -script , Saurashtri -script , Kayah Li , Rejang -script , Cham -script , Lycian script , Carian script , Lydian script , capital ß
5.2 [20] Oktober 2009 90 107.361 Samaritansk skrift , Lanna script , Fraser alfabet , Bamun script , Javanesisk script , Tai-Viet script , Meitei-Mayek , Aramaic script , Old South Arabic script , Avestic script , Parthian script , Pahlavi script , Orkhon runer , Kaithi Script , egyptiske hieroglyffer , yderligere CJK -tegn
6,0 [21] Oktober 2010 93 109.242 Batak script , Brahmi script , Mandaean script , Emoji
6.1 [22] Januar 2012 100 110.181 Meroitisk script , Sora-Sompeng , Chakma-script , Sharada-script , Takri-script , Pollard-script
6.2 [23] September 2012 100 110.182 Valutasymbol for den tyrkiske lire
6.3 [24] September 2013 100 110.187 5 flere tovejskontrolkarakterer med ændringer af Unicode Bidi -algoritmen , variantselektorer til CJK -kompatibilitetsideogrammer , forbedrede hebraiske ordbrud og CJK -linjeskift
7,0 [25] Juni 2014 123 113.021 Valutasymboler for manat og rubel , fonetiske tegn for Teuthonista og andre tegn, der bruges i tysk dialektologi , piktografiske symboler, gammelt nord-arabisk skrift , gammelt perm-skrift , Bassa-skrift , Duployé-stenografi , Elbasan-skrift , Grantha-skrift , kaukasisk-albansk skrift , Khojki- Script , Khudabadi script , Lineært script A , Mahajani script , Manichean script , Mende script , Modi script , Mro script , Nabataean script , Pahawh Hmong , Palmyrenian script , Pau Cin Hau , Psalter-Pahlavi , Siddham , Tirhuta , Warang Citi
8,0 [26] Juni 2015 129 120.737 Små bogstaver i Cherokee alfabet , 5771 mere CJK tegn, 41 mere emoji, valuta symbol for georgiske Lari , numeriske former for duodecimal systemet , tegn for Icetot , Ahom script , anatolske hieroglyffer , Hatran script , Gammel ungarsk script , Multani script , tegn script
9,0 [27] Juni 2016 135 128.172 Skrifttyper til Osage , Newari , Fulfulde , swahili dialekt af Baraawe , Warsh -variant af arabisk, Tangut (Xixia script) , samt 72 nye emoji og 19 symboler til Ultra High Definition Television
10,0 [28] Juni 2017 139 136.690 Skrifttyper til Gondi , Nüshu , Hentaigana samt 56 nye emoji og Bitcoin -symbolet
11,0 [29] Juni 2018 146 137.374 Skrifttyper til Dogri , Makassar -sprog , Medefaidrin , Sogdian -sprog , Hanifi Rohingya , Gondi , Mtavruli samt 66 nye emoji
12,0 [30] Marts 2019 150 137.928 Skrifttyper til Elymean , Nagari , Hmong og Miao samt 61 nye emoji.
12,1 [31] Maj 2019 150 137.929 Et nyt skilt for Reiwa -perioden er tilføjet.
13,0 [32] Marts 2020 154 143.859 Skrifttyper til Choresm -sprog , Dives Akuru, Khitan Small Script, Yekgirtú samt 55 nye emoji.

Udgivelsen af ​​nye versioner tager nogle gange en længere periode, så på tegningstidspunktet er kun karaktertabellerne og enkelte dele af specifikationen i første omgang klar, mens den endelige offentliggørelse af hovedspecifikationen finder sted et stykke tid senere.

Standardens indhold

Unicode -konsortiet leverer flere dokumenter til støtte for Unicode. Ud over det egentlige tegnsæt er det også andre dokumenter, der ikke er absolut nødvendige, men som er nyttige til fortolkning af Unicode -standarden.

omrids

Grafisk fremstilling af det grundlæggende flersprogede fly

I modsætning til tidligere tegnkodninger, som for det meste kun kodede et bestemt skriftsystem, er målet med Unicode at kode alle skrivesystemer og tegn i brug. [33] Antallet af tegn er opdelt i 17 niveauer ( engelske fly ), der hver omfatter 2 16 = 65.536 kodepunkter. [34] Seks af disse niveauer er allerede i brug, resten er forbeholdt senere brug:

  • Det grundlæggende flersprogede fly ( BMP ; tysk flersproget grundniveau , også omtalt som fly 0 ) indeholder hovedsageligt skrivesystemer, der aktuelt er i brug, tegnsætningstegn og symboler, kontroltegn og surrogatpar og et privat anvendeligt område (PUA) . [34] Niveauet er stærkt fragmenteret og stort set besat, så der ikke er mere plads til, at nye skrivesystemer kan kodes her. Adgang til andre niveauer end BMP er endnu ikke mulig i nogle programmer, eller kun i begrænset omfang.
  • Det supplerende flersprogede fly (SMP; dt Yderligere flersproget fly, også omtalt som fly 1.) blev introduceret med Unicode 3.1. Den indeholder hovedsageligt historiske skriftsystemer, men også større samlinger af karakterer, der sjældent bruges, som f.eks B. Domino og Mah Jongg sten og emoji . I mellemtiden er skrivesystemer også kodet i SMP'en, der stadig er i brug, men ikke længere finder et sted i BMP. [34]
  • Det supplerende ideografiske fly (SIP; dt. Yderligere ideografisk niveau, også kendt som plan 2 i det følgende), som også er blevet introduceret med Unicode 3.1, indeholder kun CJK -special, der sjældent bruges, disse inkluderer blandt andet de anvendte chữnôm , der blev brugt i Vietnam . [34] Hvis dette niveau ikke er tilstrækkeligt til dette, er plan 3 forbeholdt yderligere CJK -tegn. [35]
  • Supplerende specialformål ( SSP ; dt. Supplerende niveau til særlig brug , også omtalt som plan 14 ) indeholder et par kontroltegn til sprogmarkering. [34]
  • De to sidste niveauer, supplerende privat brugsområde -A og -B ( PUA ; også plan 15 og plan 16 ), er tilgængelige som privat brugbare områder (PUA) . [36] De omtales også undertiden som Private Use Planes [37] ( PUP ).

Inden for disse niveauer hører sammen tegn i blokke er (engl. Blokke) er opsummeret. En Unicode -blok omhandler normalt et skrivesystem, men af ​​historiske årsager er der en vis grad af fragmentering . Ofte blev tegn tilføjet senere og placeret i andre blokke som et supplement. [36]

Kodepunkter og tegn

Hver indkodet i Unicode standard elementær mærke er et kodepunkt (engl. Codepoints) tildeles. Disse er normalt vist i hexadecimal (mindst fire cifre, dvs. med indledende nuller om nødvendigt) og efterfulgt af U+ , f.eks. B. U+00DF for ß . [38]

Hele området beskrevet af Unicode -standarden omfatter 1.114.112 kodepunkter (U + 0000… U + 10FFFF, 17 niveauer på 2 16 hver, dvs. 65536 tegn). Standarden tillader dog ikke, at de kan bruges til tegnkodning i nogle områder:

  • 2048 kodepunkter i området U + D800… U + DFFF bruges som dele af surrogatpar i UTF-16- kodningsskemaet til at repræsentere kodepunkter over BMP (dvs. i området U + 10000… U + 10FFFF) og er derfor ikke bruges som kodepunkter i sig selv til rådighed for individuelle tegn.
  • 66 kodepunkter, 32 i området U + FDD0 ... U + FDEF og 2 hver for enden af ​​hvert af de 17 niveauer (dvs. U + FFFE, U + FFFF, U + 1FFFE, U + 1FFFF,…, U + 10FFFE , U + 10FFFF) er forbeholdt procesinterne anvendelser og er ikke beregnet til brug som individuelle tegn.

Det betyder, at der i alt er 1.111.998 kodepunkter til rådighed for tegnkodning. Imidlertid er antallet af faktisk tildelte kodepunkter betydeligt lavere; Tabellerne D-2 og D-3 i tillæg D til Unicode-standarden giver en oversigt over, hvor mange kodepunkter der er tildelt i de forskellige versioner, og hvad de bruges til. [39]

PUA ( privat brugsområde)

Særlige områder er forbeholdt privat brug, dvs. kodepunkter for tegn standardiseret i Unicode tildeles aldrig i disse områder. Disse kan bruges til privat definerede tegn, der skal aftales individuelt mellem skaberne og brugerne af de tekster, de indeholder. Disse områder er:

  • i BMP: U + E000 ... U + F8FF
  • på andre niveauer: U + F0000… U + FFFFD og U + 100000… U + 10FFFD

Der er udviklet specielle konventioner til forskellige applikationer, der specificerer karaktertildelinger specifikt til PUA -området i BMP. På den ene side findes ofte sammensatte tegn bestående af grundlæggende tegn og diakritiske tegn her, da det i mange (især ældre) softwareprogrammer ikke kan antages, at sådanne tegn vises korrekt i henhold til Unicode -reglerne, når de indtastes som en sekvens af grundlæggende tegn og diakritiske tegn. På den anden side er der tegn, der ikke overholder reglerne for optagelse i Unicode, eller hvis ansøgning om optagelse i Unicode ikke lykkedes af andre årsager eller ikke var tilgængelig. I mange skrifttyper, for eksempel, er der en producent logo ved position U + F000 (logoer er ikke kodet i Unicode i princippet).

Kilder til PUA -tegn er f.eks. B.:

Kodning

Ud over det faktiske tegnsæt er der også defineret et antal tegnskoder, der implementerer Unicode -tegnsættet, og som kan bruges til at have fuld adgang til alle Unicode -tegn. De kaldes Unicode Transformation Format ( UTF for kort); De mest udbredte er på den ene side UTF-16 , som har etableret sig som den interne karakterrepræsentation af nogle operativsystemer ( Windows , [44] OS X) og softwareudviklingsrammer ( Java , [45] .NET [46] ) , og på den anden side UTF-8 , som også spiller en stor rolle i operativsystemer (GNU / Linux, Unix) og i forskellige internettjenester (e-mail, WWW). UTF-EBCDIC- kodningen er defineret baseret på det proprietære EBCDIC- format for IBM- mainframes . Punycode bruges til at kode domænenavne med ikke-ASCII-tegn. Med Standard Compression Scheme for Unicode er der et kodningsformat , der komprimerer teksterne på samme tid. Andre formater til kodning af Unicode-tegn inkluderer CESU-8 og GB 18030 .

normalisering

Mange tegn, der er indeholdt i Unicode-standarden, er såkaldte kompatibilitetstegn, der fra et Unicode-synspunkt allerede kan repræsenteres med andre tegn eller tegnsekvenser, der er kodet i Unicode, f.eks. B. de tyske umlauts, som teoretisk set kan repræsenteres med en sekvens af basisbogstavet og en kombinerende Trema (vandret kolon). Med Unicode -normalisering erstattes kompatibilitetstegnene automatisk med sekvenserne i Unicode. Dette gør behandlingen af ​​Unicode -tekster meget lettere, da kun en mulig kombination står for en bestemt karakter og ikke flere forskellige.

Sortering

For mange skrivesystemer er tegnene i Unicode ikke kodet i en rækkefølge, der svarer til en sortering, der er fælles for brugere af dette skrivesystem. Ved sortering af z. B. i en databaseapplikation bruges normalt ikke rækkefølgen af ​​kodepunkterne. Desuden er sorteringen i mange skrivesystemer præget af komplekse, kontekstafhængige regler. Her definerer Unicode Collation Algorithm, hvordan karakterstrenge kan sorteres inden for et bestemt skrivesystem eller også på tværs af alle skrivesystemer.

I mange tilfælde afhænger den faktiske rækkefølge, der skal bruges, imidlertid af andre faktorer (f.eks. Det anvendte sprog) (f.eks. Sorteret "ä" på tysk afhængigt af applikationen som "ae" eller "a", men på svensk efter "z" og “å”), så Unicode -sorteringsalgoritmen skal bruges, hvis sorteringen ikke er bestemt af mere specifikke rammebetingelser.

Standardiseringsinstitutioner

Det nonprofit- konsortium Unicode blev grundlagt i 1991 og er ansvarlig for Unicode- industristandarden . Den internationale standard ISO 10646 udgives af ISO ( International Organization for Standardization ) i samarbejde med IEC . Begge institutioner arbejder tæt sammen. Siden 1993 har Unicode og ISO 10646 været praktisk talt identiske med hensyn til tegnkodning. Mens ISO 10646 kun definerer den faktiske tegnkodning, indeholder Unicode et omfattende regelsæt, der blandt andet klart definerer andre egenskaber, der er vigtige for den specifikke applikation, såsom sorteringsrækkefølge, læseretning og regler for kombination af tegn. [47]

I nogen tid har kodeområdet for ISO 10646 været nøjagtig det samme som Unicode, da kodeområdet også var begrænset til 17 niveauer, som kan repræsenteres med 21 bits. [48]

Kodningskriterier

Sammenlignet med andre standarder har Unicode den særlige funktion, at når kodede tegn aldrig fjernes igen for at garantere levetiden af ​​digitale data. [49] Hvis standardiseringen af ​​et tegn efterfølgende viser sig at være en fejl, frarådes dets brug. Derfor kræver optagelse af et mærke i standarden ekstremt omhyggelig undersøgelse, hvilket kan tage år.

Unicode kun "abstrakte tegn" er (engelsk: tegn) kodet, men ikke den grafiske fremstilling ( glyfer ) af disse tegn, der kan variere fra skrifttype meget forskellige skrifttyper, det latinske alfabet som i form af Antiqua , brud , det irske magasin eller de forskellige manuskripter . [50] Som en sikkerhedsforanstaltning er 256 "Variation Selectors" forbeholdt glyphvarianter, hvis normalisering har vist sig at være nyttig og nødvendig. I mange skrivesystemer kan tegn også antage forskellige former eller danne ligaturer afhængigt af deres position. Bortset fra nogle få undtagelser (f.eks. Arabisk) er sådanne varianter heller ikke inkluderet i Unicode-standarden, men en såkaldt smart fontteknologi som OpenType er påkrævet, hvilket i tilstrækkelig grad kan erstatte formularerne.

På den anden side er identiske glyfer, hvis de har forskellige betydninger, også kodet flere gange, f.eks. Glyferne А, В, Е, K, М, Н, О, Р, Т og Х, som - med til dels forskellige betydninger - er begge på latin som også forekommer i det græske og kyrilliske alfabet.

I borderline -tilfælde er der en hård kamp for at afgøre, om det er et spørgsmål om glyphvarianter eller faktisk forskellige tegn, der er værdige til deres egen kodning ( grafemer ). For eksempel er en del eksperter af den opfattelse, at det fønikiske alfabet kan ses som glyphvarianter af det hebraiske alfabet, da hele rækken af fønikiske tegn har klare ækvivalenter der, og begge sprog er meget nært beslægtede. I sidste ende sejrede dog synet om, at det var et spørgsmål om separate tegnsystemer , kaldet "scripts" i Unicode -terminologi. [51]

Situationen er en anden med CJK ( kinesisk , japansk og koreansk ): Her har formerne for mange synonyme karakterer været forskellige i de sidste par århundreder. De sprogspecifikke glyfer deler imidlertid de samme koder i Unicode (med undtagelse af et par tegn af hensyn til kompatibilitet). I praksis bruges sprogspecifikke skrifttyper overvejende her, hvilket betyder, at skrifttyperne fylder meget. Den ensartede kodning af CJK -tegnene ( Han Unification ) var et af de vigtigste og omfattende forberedende arbejde til udviklingen af ​​Unicode. Det er særligt kontroversielt i Japan.

Da grundstenen til Unicode blev lagt, skulle det tages i betragtning, at et stort antal forskellige kodninger allerede var i brug. Unicode-baserede systemer bør kunne håndtere konventionelt kodede data med lille indsats. Den udbredte ISO-8859-1- kodning (Latin1) samt kodningstyperne for forskellige nationale standarder er bevaret for de lavere 256 tegn, f.eks. B. TIS-620 for thai (næsten identisk med ISO 8859-11 ) eller ISCII for indiske scripts , som kun er blevet flyttet til højere områder i den oprindelige rækkefølge.

Hver karakter af relevante traditionelle koder er blevet indarbejdet i standarden, selvom den ikke opfylder de standarder, der normalt anvendes. Disse er stort set tegn bestående af to eller flere tegn, f.eks. Bogstaver med diakritiske tegn . I øvrigt har en stor del af softwaren stadig ikke mulighed for korrekt at samle karakterer med diakritik. Den nøjagtige definition af ækvivalente kodninger er en del af det omfattende regelsæt, der tilhører Unicode.

Derudover er der mange Unicode -tegn, der ikke er tildelt nogen glyph og stadig behandles som "tegn". Udover kontroltegn som f.eks. Fanebladet (U + 0009), nylinjen (U + 000A) osv. Alene alene 19 forskellige tegn eksplicit som et mellemrum defineret, selv dem uden bredde, blandt andet til sprog som thai , som er skrevet uden ordrum, da der bruges ordseparatorer. For tovejs tekst , f.eks. B. Arabisk med latin , syv formateringstegn er kodet. Derudover er der andre usynlige tegn, der kun bør evalueres under visse omstændigheder, f.eks. Combining Grapheme Joiner .

Brug på edb -systemer

Kodepunkt input metoder

Direkte input på operativsystemniveau

Microsoft Windows

Under Windows (fra Windows 2000 ) i nogle programmer (mere præcist i RichEdit-felter) kan koden indtastes decimalt som Alt + <decimal Unicode> (med aktiveret Num-Lock ) på det numeriske tastatur. Bemærk dog, at tegnetal mindre end 1000 skal suppleres med et indledende nul (f.eks. Alt + 0 2 3 4 for kodepunkt 234 10 [ê]). Denne foranstaltning er nødvendig, fordi indtastningsmetoden Alt + <et til tre-cifret decimaltal uden et førende nul> (stadig tilgængelig i Windows) allerede blev brugt i MS-DOS- tider til at indtaste tegnene på kodesiden 850 (især med tidligere MS -DOS -versioner koder også side 437 ).

En anden inputmetode kræver, at der er en post (værdi) af typen REG_SZ ("tegnstreng") kaldet EnableHexNumpad i registreringsdatabasen i nøglen HKEY_CURRENT_USER\Control Panel\Input Method og at værdien (dato) 1 tildelt den . Nach dem Editieren der Registry müssen Benutzer sich unter Windows 8.1, Windows 8, Windows 7 und Vista vom Windows-Benutzerkonto ab- und wieder anmelden, bei früheren Windows-Versionen ist ein Neustart des Rechners notwendig, damit die Änderungen in der Registry wirksam werden. Danach können Unicode-Zeichen wie folgt eingegeben werden: Zuerst die (linke) Alt-Taste drücken und halten, dann auf dem Ziffernblock die Plus-Taste drücken und wieder loslassen und anschließend den hexadezimalen Code des Zeichens eingeben, wobei für Ziffern der Ziffernblock verwendet werden muss. Abschließend die Alt-Taste wieder loslassen.

Zwar funktioniert diese Eingabemethode prinzipiell in jedem Eingabefeld jedes Windows-Programms, allerdings kann es vorkommen, dass Schnellzugriffstasten für Menüfunktionen die Eingabe hexadezimaler Codepunkte verhindern: Will man beispielsweise den Buchstaben Ø (U+00D8) eingeben, so führt die Kombination Alt+D in vielen Programmen dazu, dass stattdessen das Menü Datei geöffnet wird.

Ein weiterer Nachteil besteht darin, dass Windows hier die explizite Angabe der (intern in Windows verwendeten) UTF-16 -Codierung statt der Unicode-Kodierung selbst verlangt [52] und daher nur die Eingabe vierstelliger Codewerte zulässt; für Zeichen, die oberhalb der BMP liegen und über Codepunkte mit fünf- oder sechsstelliger Hexadezimaldarstellung verfügen, sind stattdessen sogenannte Surrogate Pairs zu verwenden, bei denen ein fünf- oder sechsstelliger Codepunkt auf zwei je vierstellige Ersatzcodepunkte abgebildet wird. So ist etwa der Violinschlüssel 𝄞 (U+1D11E) als hexadezimales UTF-16-Wertpaar D834 und DD1E einzugeben; eine direkte Eingabe fünf- oder sechsstelliger Codepunkte ist hier also nicht möglich.

Apple macOS

Bei Apple macOS muss die Eingabe von Unicode-Zeichen als Sonderfall zuerst über die Systemeinstellungen „Tastatur“ aktiviert werden.[53] Hierzu ist im Dialog Registerkarte „Eingabequellen“ über das Plus-Symbol die „Unicode-Hex-Eingabe“ hinzuzufügen. Diese befindet sich unter dem Oberpunkt „Andere“. Danach kann der Unicode-Wert bei gedrückter ⌥Option -Taste mit dem vierstelligen Hex-Code des Unicode-Zeichens eingegeben werden; sollte der Hexcode kleiner als vierstellig sein, so müssen führende Nullen eingegeben werden.[53] Sollte der Hexcode fünfstellig sein, so ist keine unmittelbare Eingabe per Tastatur möglich und es muss über den Dialog „Zeichenübersicht“ ausgewählt werden. [54] Wenn die Unicode-Hex-Eingabe aktiviert ist, dann liegt keine deutschsprachige Tastaturbelegung vor (ua für Umlaute), so dass zwischen beiden Tastatur-Modi gewechselt werden muss. Der jeweilige Status der Tastaturbelegung lässt sich per Zusatzoption in der Menüzeile einblenden. [54]

Direkte Eingabe in spezieller Software

Microsoft Office

Unter Microsoft Office (ab Office XP) kann Unicode auch hexadezimal eingegeben werden, indem im Dokument <Unicode> oder U+<Unicode> eingetippt wird und anschließend die Tastenkombination Alt + c , bzw. in Dialogfeldern Alt + x , gedrückt wird. Diese Tastenkombination kann auch benutzt werden, um den Code des vor dem Cursor stehenden Zeichens anzuzeigen. [55] Eine alternative Möglichkeit, welche auch in älteren Versionen funktioniert, ist, mit „Einfügen“ – „Sonderzeichen“ eine Tabelle mit Unicode-Zeichen aufzurufen, darin mit dem Cursor ein gewünschtes auszusuchen und in den Text einzufügen. Das Programm ermöglicht auch, für häufiger benötigte Zeichen Makros festzulegen, die dann mit einer Tastenkombination abgerufen werden können.

Qt und GTK+

GTK+ , Qt und alle darauf basierenden Programme und Umgebungen (wie beispielsweise die Desktop-Umgebung Gnome ) unterstützen die Eingabe über die Kombination Strg + Umschalttaste bzw. in neueren Versionen Strg + U bzw. Strg + Umschalttaste + u . Nach dem Drücken der Tasten erscheint ein unterstrichenes kleines u. Danach kann der Unicode in hexadezimaler Form eingegeben werden und wird auch unterstrichen, damit man erkennen kann, was zum Unicode gehört. Nach einem Druck der Leer- oder Eingabetaste erscheint dann das entsprechende Zeichen. Auf der Desktop-Umgebung KDE wird diese Funktionalität nicht unterstützt.

Vim

Im Texteditor Vim können Unicode-Zeichen mit Strg + v , gefolgt von der Taste u und dem Unicode in hexadezimaler Form, eingegeben werden.

Auswahl über Zeichentabellen

Seit Windows NT 4.0 ist das Programm charmap.exe , genannt Zeichentabelle , in Windows integriert. Mit diesem Programm ist über eine grafische Benutzeroberfläche möglich, Unicode-Zeichen einzufügen. Außerdem bietet es ein Eingabefeld für den Hexadezimalcode.

Unter macOS steht unter EinfügenSonderzeichen ebenfalls eine systemweite Zeichenpalette bereit.

Die freien Programme gucharmap (für Windows und Linux / Unix ) und kcharselect (für Linux/UNIX) stellen den Unicode-Zeichensatz auf dem Bildschirm dar und bieten zusätzliche Informationen zu den einzelnen Zeichen.

Codepunkt-Angaben in Dokumenten

HTML und XML unterstützen Unicode mit Zeichencodes, die unabhängig vom eingestellten Zeichensatz das Unicode-Zeichen darstellen. Die Notation lautet &#0000; für dezimale Notation bzw. &#x0000; für hexadezimale Notation, wobei das 0000 die Unicode-Nummer des Zeichens darstellt. Für bestimmte Zeichen sind auch benannte Zeichen (engl. named entities ) definiert, so z. B. stellt &auml; das ä dar, [56] das gilt allerdings nur für HTML; XML und das davon abgeleitete XHTML definieren benannte Notationen nur für die Zeichen, die bei normalem Gebrauch als Teile der Auszeichnungssprache interpretiert würden, also < als &lt; , > als &gt; , & als &amp; und " als &quot; .

Kritik

Unicode wird vor allem aus den Reihen der Wissenschaftler und in ostasiatischen Ländern kritisiert. Einer der Kritikpunkte ist hierbei die Han-Vereinheitlichung ; aus ostasiatischer Sicht werden bei diesem Vorgehen Schriftzeichen verschiedener nicht verwandter Sprachen vereinigt. [57] Unter anderem wird kritisiert, dass antike Texte in Unicode aufgrund dieser Vereinheitlichung ähnlicher CJK-Schriftzeichen nicht originalgetreu wiedergegeben werden können.[58] Aufgrund dessen wurden in Japan zahlreiche Alternativen zu Unicode entwickelt, wie etwa der Mojikyō -Standard.

Die Kodierung der thailändischen Schrift wird teilweise kritisiert, weil sie anders als alle anderen Schriftsysteme in Unicode nicht auf logischer, sondern visueller Reihenfolge basiert, was unter anderem die Sortierung thailändischer Wörter erheblich erschwert. [57] Die Unicode-Kodierung basiert auf dem thailändischen Standard TIS-620 , der ebenfalls die visuelle Reihenfolge verwendet. [59] Umgekehrt wird die Kodierung der anderen indischen Schriften manchmal als „zu kompliziert“ bezeichnet, vor allem von Vertretern der Tamil-Schrift . Das Modell separater Konsonanten- und Vokalzeichen, welches Unicode vom indischen Standard ISCII übernommen hat, [60] wird von jenen abgelehnt, die separate Codepunkte für alle möglichen Konsonant-Vokal-Verbindungen bevorzugen. [61] Die Regierung der Volksrepublik China machte einen ähnlichen Vorschlag, die tibetische Schrift als Silbenfolgen anstatt als einzelne Konsonanten und Vokale zu kodieren. [62]

Auch gab es Versuche von Unternehmen, Symbole in Unicode zu platzieren, die für deren Produkte stehen sollen. [63]

Schriftarten

Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschte Zeichennummer) enthält. Oftmals, z. B. unter Windows, wird, falls die verwendete Schrift ein Zeichen nicht enthält, nach Möglichkeit ein Zeichen aus einer anderen Schrift eingefügt.

Mittlerweile hat der Coderaum von Unicode/ISO einen Umfang angenommen (mehr als 100.000 Schriftzeichen), der sich nicht mehr vollständig in einer Schriftdatei unterbringen lässt. Die heute gängigsten Schriftdateiformate, TrueType und OpenType , können maximal 65.536 Glyphen enthalten. Unicode/ISO-Konformität einer Schrift bedeutet also nicht, dass der komplette Zeichensatz enthalten ist, sondern lediglich, dass die darin enthaltenen Zeichen normgerecht kodiert sind. In der Publikation »decodeunicode«, die alle Zeichen vorstellt, werden insgesamt 66 Fonts genannt, aus denen die Zeichentabellen zusammengesetzt sind.

Auswahl an Unicode-Schriftarten

Ersatzschriftarten

Eine Ersatzschriftart dient der Ersatzdarstellung für Zeichen, für die kein Font mit korrekter Darstellung zur Verfügung steht.

Hier gibt z. B. folgende Fonts:

  • Unicode BMP Fallback SIL , eine von SIL International erstellte Ersatzschriftart, welche alle in Version 6.1 definierten Zeichen der Ebene Null ( B asic M ultilingual P lane) als Quadrat mit einbeschriebenem Hex-Code darstellt. Zu finden unter sil.org .
  • LastResort , designt von Michael Everson , eine in Mac OS 8.5 und höher enthaltene Ersatzschriftart, welche die erste Glyphe eines Blocks für alle Zeichen des Blocks verwendet. Frei herunterladbar von unicode.org .

Siehe auch

Portal: Unicode – Übersicht zu Wikipedia-Inhalten zum Thema Unicode

Literatur

  • Johannes Bergerhausen, Siri Poarangan: decodeunicode: Die Schriftzeichen der Welt . Hermann Schmidt, Mainz 2011, ISBN 978-3-87439-813-8 (Alle 109.242 Unicode-Zeichen in einem Buch.).
  • Julie D. Allen: The Unicode Standard, version 6.0 . The Unicode Consortium. The Unicode Consortium, Mountain View 2011, ISBN 978-1-936213-01-6 ( Online-Version ).
  • Richard Gillam: Unicode Demystified: a practical programmer's guide to the encoding standard . Addison-Wesley, Boston 2003, ISBN 0-201-70052-2 .

Weblinks

Wiktionary: Unicode – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Commons : Unicode – Unicode-Zeichen als SVG

Einzelnachweise

  1. Dieser Standard ist identisch zu ECMA 35 (PDF; 304 kB), einem Standard von Ecma International .
  2. Internationalisation and the Web
  3. Joseph D. Becker: Unicode 88 . (PDF; 2,9 MB) 29. August 1988, S. 5
  4. History of Unicode Release and Publication Dates
  5. Chronology of Unicode Version 1.0
  6. Unicode in Japan: Guide to a technical and psychological struggle . ( Memento vom 27. Juni 2009 im Internet Archive )
  7. UnicodeData.txt (1.0.0)
  8. UnicodeData.txt (1.0.1)
  9. UnicodeData.txt (1.1)
  10. a b What's new in Unicode 5.1? BabelStone
  11. UnicodeData.txt (2.0)
  12. UTR #8: The Unicode Standard, Version 2.1
  13. Unicode 3.0.0
  14. UAX #27: Unicode 3.1
  15. UTR #28: Unicode 3.2
  16. Unicode 4.0.0
  17. Unicode 4.1.0
  18. Unicode 5.0.0
  19. Unicode 5.1.0
  20. Unicode 5.2.0
  21. Unicode 6.0.0
  22. Unicode 6.1.0
  23. Unicode 6.2.0
  24. Unicode 6.3.0
  25. Unicode 7.0.0
  26. Unicode 8.0.0
  27. Unicode 9.0.0. In: unicode.org. Abgerufen am 22. Juni 2016 .
  28. Unicode 10.0.0. In: unicode.org. Abgerufen am 20. April 2017 .
  29. Unicode 11.0.0. In: unicode.org. Abgerufen am 21. Juli 2018 .
  30. Unicode 12.0.0. In: unicode.org. Abgerufen am 28. Februar 2019 .
  31. Unicode 12.1.0. In: unicode.org. Abgerufen am 7. Mai 2019 .
  32. Unicode 13.0.0. In: unicode.org. Abgerufen am 25. April 2021 .
  33. What is Unicode?
  34. a b c d e The Unicode Standard, S. 33
  35. Roadmap to the SIP
  36. a b The Unicode Standard, S. 34
  37. Unicode 6.3 Kapitel 2.8, Seite 34, erster Absatz (da die Core-Spezifikation für Version 6.3 nicht verändert und auch nicht neu veröffentlicht wurde, gelten die Dateien von Version 6.2 für 6.3 unverändert weiter.)
  38. The Unicode Standard, S. 21f
  39. Unicode 6.3 Anhang D, Seite 602, Tabellen D-2 und D-3 (da die Core-Spezifikation für Version 6.3 nicht verändert und auch nicht neu veröffentlicht wurde, gelten die Dateien von Version 6.2 für 6.3 unverändert weiter.)
  40. Medieval Unicode Font Initiative. Abgerufen am 21. August 2012 .
  41. Peter Constable and Lorna A. Priest: SIL Corporate PUA Assignments. 17. April 2012, abgerufen am 21. August 2012 .
  42. Chris Harvey: Languagegeek Fonts. 29. Juni 2012, abgerufen am 21. August 2012 .
  43. ConScript Unicode Registry. Abgerufen am 21. August 2012 .
  44. Character Sets
  45. Java Internationalization FAQ
  46. Unicode in the .NET Framework
  47. FAQ – Unicode and ISO 10646
  48. The Unicode Standard, S. 573
  49. Unicode Character Encoding Stability Policy
  50. Unicode Technical Report #17 – Character Encoding Model
  51. Response to the revised “Final proposal for encoding the Phoenician script in the UCS” (L2/04-141R2)
  52. unicode.org
  53. a b Jan Mahn: Sonderbare Zeichen . Sonderzeichen unter Windows, Linux, macOS. In: c't . Nr.   20 , 2019, S.   126–127 ( heise.de [abgerufen am 28. Januar 2021]).
  54. a b Unicode unter Mac OS X. apfelwiki.de; abgerufen am 27. April 2013
  55. Tastenkombinationen für internationale Zeichen
  56. Character entity references in HTML 4 w3.org
  57. a b Suzanne Topping: The secret life of Unicode. IBM DeveloperWorks, 1. Mai 2001, archiviert vom Original am 14. November 2007 ; abgerufen am 7. November 2015 (englisch).
  58. Otfried Cheong: Han Unification in Unicode. 12. Oktober 1999, archiviert vom Original am 28. März 2010 ; abgerufen am 7. November 2015 (englisch).
  59. The Unicode Standard, S. 350
  60. The Unicode Standard, S. 268
  61. Krishnamurthy, Elangovan, P. Chellappan Kanithamizh Sangam: Evolution of the 16 Bit Encoding Scheme for Tamil. Archiviert vom Original am 16. August 2012 ; abgerufen am 22. November 2015 (englisch).
  62. Precomposed Tibetan Part 1: BrdaRten. BabelStone
  63. winfuture.de