Unicode
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. "
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
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
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.:
- MUFI (Medieval Unicode Font Initiative) [40]
- SIL PUA til særlige bogstaver på forskellige minoritetssprog verden over [41]
- Languageagegeek for indfødte sprog i Nordamerika[42]
- ConScript [43] til opfindelige skrivesystemer som f.eks. Klingon
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ügen → Sonderzeichen 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 �
für dezimale Notation bzw. �
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 ä
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 <
, >
als >
, &
als &
und "
als "
.
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
- Arial Unicode MS (wird ab Microsoft Office XP ausgeliefert. Unterstützung nur bis Unicode 2.0. Enthält 50 377 Glyphen (38 917 Zeichen) in Version 1.01.)
- Bitstream Cyberbit (kostenlos bei nichtkommerzieller Nutzung. 29 934 Zeichen in Version 2.0 beta.)
- Bitstream Vera (frei, serifenlose Version der Cyberbit)
- Cardo (kostenlos bei nichtkommerzieller Nutzung, 2 882 Zeichen in Version 0.098, 2004)
- ClearlyU (frei, die Pixel-Schriftartenfamilie umfasst einen Satz von 12pt bis 100dpi proportionalen BDF-Schriftarten mit vielen benötigten Zeichen von Unicode. 9 538 Zeichen in Version 1.9.)
- Code2000 , Code2001 und Code2002: Drei freie Schriftarten, welche für die drei Planes 0, 1 und 2 Zeichen bereitstellen. Diese Schriftarten werden seit 2008 nicht mehr weiterentwickelt und sind deshalb weitgehend veraltet. Davon ausgenommen ist Code2000 für die Blöcke Saurashtra, Kayah Li, Rejang und Cham. Im übrigen gibt es für Code2000 und Code2001 zahlreich Alternativen, für Code2002 z. B. „HanaMinA“ mit „HanaMinB“, „MingLiU-ExtB“, „SimSun-ExtB“ und „Sun-ExtB“.
- DejaVu (frei, „DejaVu Sans“ enthält 3 471 Zeichen und 2 558 Unterschneidungspaare in Version 2.6)
- Doulos SIL (frei; enthält das IPA . 3 083 Zeichen in Version 4.014.)
- Everson Mono (Shareware; umfasst einen Großteil der Nicht- CJK -Buchstaben. 9632 Zeichen in Macromedia Fontographer v7.0.0 12. Dezember 2014.)
- Free UCS Outline Fonts (frei, „FreeSerif“ umfasst 3 914 Zeichen in Version 1.52, MES-1 compliant)
- Gentium Plus (Weiterentwicklung von Gentium . Version 1.510 vom August 2012 enthält 5 586 Glyphen für 2 520 Zeichen. – Download-Seite bei SIL International )
- HanaMinA und HanaMinB überdecken zusammen die Ebene 2 (U+2XXXX). HanaMinA den Block Unicodeblock CJK-Ideogramme, Kompatibilität, Ergänzung , HanaMinB die Blöcke Vereinheitlichte CJK-Ideogramme, Erweiterung B , Vereinheitlichte CJK-Ideogramme, Erweiterung C und Vereinheitlichte CJK-Ideogramme, Erweiterung D .
- Helvetica World (lizenzierbar bei Linotype )
- Junicode (frei; umfasst viele altertümliche Zeichen, entworfen für Historiker. 1 435 Zeichen in Version 0.6.3.)
- Linux Libertine (frei, umfasst westliche Zeichensätze (Latein, Kyrillisch, Griechisch, Hebräisch, ua mit archaischen Sonderzeichen, Ligaturen, mediävale, proportionale und römische Ziffern, enthält mehr als 2000 Zeichen in Version 2.6.0), 2007)
- Lucida Grande (Unicode-Schriftart enthalten in macOS ; umfasst 1 266 Zeichen)
- Lucida Sans Unicode (enthalten in aktuelleren Microsoft Windows Versionen; unterstützt nur ISO-8859-x -Buchstaben. 1 776 Zeichen in Version 2.00.)
- New Gulim (wird ausgeliefert mit Microsoft Office 2000. Großteil von CJK-Buchstaben. 49 284 Zeichen in Version 3.10.)
- Noto ist eine Schriftfamilie , die von Google und Adobe entwickelt und unter der freien Apache-Lizenz angeboten wird. Obwohl ein noch laufendes Projekt, sind bereits die meisten Unicode-kodierten modernen und historischen Schriften abgedeckt. ( Download-Seite bei google.com )
- Sun-ExtA überdeckt weite Teile der Ebene 0, darunter 20924 der 20941 Zeichen im Unicodeblock Vereinheitlichte CJK-Ideogramme und alle 6582 Zeichen im Unicodeblock Vereinheitlichte CJK-Ideogramme, Erweiterung A .
- Sun-ExtB überdeckt die Ebene 2 (U+2XXXX) weitgehend: Unicodeblock CJK-Ideogramme, Kompatibilität, Ergänzung , Unicodeblock Vereinheitlichte CJK-Ideogramme, Erweiterung B und Unicodeblock Vereinheitlichte CJK-Ideogramme, Erweiterung C vollständig, vom Unicodeblock Vereinheitlichte CJK-Ideogramme, Erweiterung D 59 der 222 Zeichen. Außerdem noch den Unicodeblock Tai-Xuan-Jing-Symbole .
- TITUS Cyberbit Basic (frei; aktualisierte Version der Cyberbit. 9 779 Zeichen in Version 3.0, 2000.)
- Y.OzFontN (frei. enthält viele japanische CJK-Buchstaben, umfasst wenig SMP -Zeichen. 59 678 Zeichen in Version 9.13.)
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
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
- Offizielle Website des Unicode Consortium (englisch)
- Der universale Code: Unicode . SELFHTML
- Imperia Unicode- und Multi-Language-Howto. ( Memento vom 28. Oktober 2014 im Internet Archive ) – Allgemeinverständliche, deutschsprachige Einführung in Unicode
- UTF-8 and Unicode FAQ for Unix/Linux von Markus Kuhn (englisch)
- UniSearcher – Suchen von Unicodes
- Shapecatcher grafische Unicode Zeichensuche (englisch)
- Ermitteln des Zeichennamens und der Codeposition durch Eingabe des Zeichens
- Unicode – The Movie Alle 109.242 Unicode-Zeichen in einem Film
- Unicode-Fontviewer (Freeware)
- Alle Unicode-Zeichen, Emojis und Schriftarten in Windows 10
- Ausführliche Auflistung aller Unicode-Eingabemethoden für Windows (englisch)
- ausführlicher Blog-Artikel zum Minimalverständnis über Unicode (englisch)
- Golo Roden: Was man über Unicode wissen sollte. In: Heise online . 28. Januar 2021 (Heise Developer).
Einzelnachweise
- ↑ Dieser Standard ist identisch zu ECMA 35 (PDF; 304 kB), einem Standard von Ecma International .
- ↑ Internationalisation and the Web
- ↑ Joseph D. Becker: Unicode 88 . (PDF; 2,9 MB) 29. August 1988, S. 5
- ↑ History of Unicode Release and Publication Dates
- ↑ Chronology of Unicode Version 1.0
- ↑ Unicode in Japan: Guide to a technical and psychological struggle . ( Memento vom 27. Juni 2009 im Internet Archive )
- ↑ UnicodeData.txt (1.0.0)
- ↑ UnicodeData.txt (1.0.1)
- ↑ UnicodeData.txt (1.1)
- ↑ a b What's new in Unicode 5.1? BabelStone
- ↑ UnicodeData.txt (2.0)
- ↑ UTR #8: The Unicode Standard, Version 2.1
- ↑ Unicode 3.0.0
- ↑ UAX #27: Unicode 3.1
- ↑ UTR #28: Unicode 3.2
- ↑ Unicode 4.0.0
- ↑ Unicode 4.1.0
- ↑ Unicode 5.0.0
- ↑ Unicode 5.1.0
- ↑ Unicode 5.2.0
- ↑ Unicode 6.0.0
- ↑ Unicode 6.1.0
- ↑ Unicode 6.2.0
- ↑ Unicode 6.3.0
- ↑ Unicode 7.0.0
- ↑ Unicode 8.0.0
- ↑ Unicode 9.0.0. In: unicode.org. Abgerufen am 22. Juni 2016 .
- ↑ Unicode 10.0.0. In: unicode.org. Abgerufen am 20. April 2017 .
- ↑ Unicode 11.0.0. In: unicode.org. Abgerufen am 21. Juli 2018 .
- ↑ Unicode 12.0.0. In: unicode.org. Abgerufen am 28. Februar 2019 .
- ↑ Unicode 12.1.0. In: unicode.org. Abgerufen am 7. Mai 2019 .
- ↑ Unicode 13.0.0. In: unicode.org. Abgerufen am 25. April 2021 .
- ↑ What is Unicode?
- ↑ a b c d e The Unicode Standard, S. 33
- ↑ Roadmap to the SIP
- ↑ a b The Unicode Standard, S. 34
- ↑ 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.)
- ↑ The Unicode Standard, S. 21f
- ↑ 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.)
- ↑ Medieval Unicode Font Initiative. Abgerufen am 21. August 2012 .
- ↑ Peter Constable and Lorna A. Priest: SIL Corporate PUA Assignments. 17. April 2012, abgerufen am 21. August 2012 .
- ↑ Chris Harvey: Languagegeek Fonts. 29. Juni 2012, abgerufen am 21. August 2012 .
- ↑ ConScript Unicode Registry. Abgerufen am 21. August 2012 .
- ↑ Character Sets
- ↑ Java Internationalization FAQ
- ↑ Unicode in the .NET Framework
- ↑ FAQ – Unicode and ISO 10646
- ↑ The Unicode Standard, S. 573
- ↑ Unicode Character Encoding Stability Policy
- ↑ Unicode Technical Report #17 – Character Encoding Model
- ↑ Response to the revised “Final proposal for encoding the Phoenician script in the UCS” (L2/04-141R2)
- ↑ unicode.org
- ↑ 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]).
- ↑ a b Unicode unter Mac OS X. apfelwiki.de; abgerufen am 27. April 2013
- ↑ Tastenkombinationen für internationale Zeichen
- ↑ Character entity references in HTML 4 w3.org
- ↑ 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).
- ↑ Otfried Cheong: Han Unification in Unicode. 12. Oktober 1999, archiviert vom Original am 28. März 2010 ; abgerufen am 7. November 2015 (englisch).
- ↑ The Unicode Standard, S. 350
- ↑ The Unicode Standard, S. 268
- ↑ 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).
- ↑ Precomposed Tibetan Part 1: BrdaRten. BabelStone
- ↑ winfuture.de