Det internationella unicode -kodningssystemet tillhandahåller. Unicode -kodning: teckenkodningsstandard


Eftersom i ett antal datorsystem (till exempel Windows NT) redan 16-bitars tecken användes som standardkodning, bestämdes det att koda alla de viktigaste tecknen endast inom de första 65 536 positionerna (den så kallade engelska. grundläggande flerspråkigt plan, BMP). Resten av utrymmet används för "ytterligare tecken" (eng. kompletterande tecken): skrivsystem för utdöda språk eller mycket sällan använda kinesiska tecken, matematiska och musikaliska symboler.

För kompatibilitet med gamla 16-bitars system uppfanns UTF-16-systemet, där de första 65 536 positionerna, med undantag för positioner från intervallet U + D800 ... U + DFFF, visas direkt som 16-bitars nummer, och resten representeras som "surrogatpar" (Det första elementet i paret från U + D800 ... U + DBFF -området, det andra elementet i paret från U + DC00 ... U + DFFF -området). För surrogatpar användes en del av kodutrymmet (2048 positioner), som tidigare var reserverat för "tecken för privat bruk".

Eftersom UTF-16 bara kan visa 2 20 + 2 16 −2048 (1 112 064) tecken valdes detta nummer som slutvärdet för Unicode-kodutrymmet.

Även om Unicode-kodområdet utökades till 2-16 så tidigt som version 2.0, placerades de första tecknen i området "överst" bara i version 3.1.

Kodningens roll i webbsektorn växer ständigt, i början av 2010 var andelen webbplatser som använder Unicode cirka 50%.

Unicode -versioner

När Unicode -teckentabellen ändras och fylls på och nya versioner av detta system släpps - och detta arbete pågår, eftersom det ursprungliga Unicode -systemet endast innehöll plan 0 - två -byte -koder - släpps också nya ISO -dokument. Unicode -systemet finns totalt i följande versioner:

  • 1.1 (överensstämmer med ISO / IEC 10646-1-standarden :), 1991-1995-standarden.
  • 2.0, 2.1 (samma standard ISO / IEC 10646-1: 1993 plus tillägg: "Ändringar" 1 till 7 och "Tekniska korrigeringar" 1 och 2), 1996-standard.
  • 3.0 (ISO / IEC 10646-1: 2000 standard), 2000 standard.
  • 3.1 (ISO / IEC 10646-1: 2000 och ISO / IEC 10646-2: 2001 standarder) 2001 standard.
  • 3.2, 2002 standard.
  • 4.0, standard.
  • 4.01, standard.
  • 4.1, standard.
  • 5,0, standard.
  • 5.1, standard.
  • 5.2, standard.
  • 6,0 standard
  • 6.1, standard.
  • 6.2, standard.

Kodutrymme

Även om notationsformerna UTF-8 och UTF-32 tillåter kodning av upp till 2 31 (2 147 483 648), beslutades det att endast använda 1 112 064 för kompatibilitet med UTF-16. Men även detta är mer än tillräckligt - idag (i version 6.0) används lite mindre än 110 000 kodpunkter (109 242 grafik och 273 andra symboler).

Kodutrymmet är uppdelat i 17 flygplan 2 16 (65536) tecken vardera. Nollplanet kallas grundläggande, den innehåller symbolerna för de vanligaste skripten. Det första planet används främst för historiska skript, det andra - för sällan använda CJK -tecken är det tredje reserverat för arkaiska kinesiska tecken. Plan 15 och 16 är reserverade för privat bruk.

För att beteckna Unicode -tecken, använd notationen som "U + xxxx"(För koder 0 ... FFFF) eller" U + xxxxx"(För koder 10000 ... FFFFF) eller" U + xxxxxx"(För koder 100000 ... 10FFFF), var xxx- hexadecimala siffror. Till exempel har tecknet "i" (U + 044F) koden 044F = 1103.

Kodningssystem

Det universella kodningssystemet (Unicode) är en uppsättning grafiska symboler och ett sätt att koda dem för datorbehandling av textdata.

Grafiska symboler är symboler som har en synlig bild. Grafiska tecken står emot kontroll- och formateringstecken.

Grafiska symboler inkluderar följande grupper:

  • bokstäver som finns i minst ett av de alfabet som stöds;
  • tal;
  • punkter;
  • specialtecken (matematiska, tekniska, ideogram, etc.);
  • separatorer.

Unicode är ett system för linjär representation av text. Tecken med ytterligare överskrift eller abonnemang kan representeras som en sekvens av koder byggda enligt vissa regler (sammansatt tecken) eller som ett enda tecken (monolitisk version, förkomponerat tecken).

Ändra tecken

Representation av tecknet "Y" (U + 0419) i form av grundtecknet "I" (U + 0418) och det modifierande tecknet "" (U + 0306)

Grafiska tecken i Unicode är indelade i utökade och icke-förlängda (breddlösa). Icke-utökade tecken tar inte plats i raden när de visas. Dessa inkluderar särskilt accentmärken och andra diakritiska tecken. Både utökade och icke-utökade tecken har sina egna koder. Utökade symboler kallas annars grundläggande (eng. baskaraktärer) och icke -utökade - modifierande (eng. att kombinera karaktärer); och den senare kan inte träffas självständigt. Tecknet "á" kan till exempel representeras som en sekvens av grundtecknet "a" (U + 0061) och modifieringstecknet "́" (U + 0301), eller som ett monolitiskt tecken "á" (U + 00C1).

En speciell typ av modifierande tecken är stilväljare (eng. variantväljare). De gäller endast de symboler för vilka sådana varianter definieras. I version 5.0 definieras teckensnittsalternativ för ett antal matematiska symboler, för symboler för det traditionella mongoliska alfabetet och för symboler för det mongoliska fyrkantiga manuset.

Normaliseringsformer

Eftersom samma tecken kan representeras av olika koder, vilket ibland gör bearbetningen svår, finns det normaliseringsprocesser som är utformade för att få text till en viss standardform.

Unicode -standarden definierar fyra former av textnormalisering:

  • Normaliseringsform D (NFD) - Kanonisk sönderdelning. Vid konvertering av texten till denna form ersätts alla sammansatta tecken rekursivt med flera sammansatta sådana, i enlighet med sönderdelningstabellerna.
  • Normaliseringsform C (NFC) är kanonisk sönderdelning följt av kanonisk komposition. Först reduceras texten till form D, varefter den kanoniska kompositionen utförs - texten bearbetas från början till slut och följande regler följs:
    • S -symbolen är första om den har en modifieringsklass på noll i Unicode -teckenbasen.
    • I alla teckenföljder som börjar med ett starttecken S blockeras ett tecken C från S om och endast om det finns något tecken B mellan S och C som antingen är ett starttecken eller har samma eller större modifieringsklass än C. Detta regel gäller endast strängar som har gått igenom kanonisk sönderdelning.
    • Primär En komposit är ett tecken som har en kanonisk sönderdelning i Unicode -teckenbasen (eller kanonisk sönderdelning för Hangul och ingår inte i listan över undantag).
    • X -tecknet kan vara primärt inriktat med Y -tecknet om och bara om det finns ett primärt sammansatt Z kanoniskt ekvivalent med sekvensen .
    • Om nästa C-tecken inte blockeras av det senast påträffade initiala tecknet L och det kan lyckas anpassas med det först, ersätts L med L-C-kompositen och C tas bort.
  • Normaliseringsform KD (NFKD) - Kompatibel sönderdelning. När de kastas in i denna form ersätts alla sammansatta tecken med både kanoniska Unicode -sönderdelningskartor och kompatibla sönderdelningskartor, varefter resultatet placeras i kanonisk ordning.
  • Normaliseringsform KC (NFKC) - kompatibel sönderdelning följt av kanonisk sammansättning.

Uttrycken "sammansättning" och "sönderdelning" betyder anslutning eller sönderdelning av symboler till deras beståndsdelar.

Exempel på

Källtext NFD NFC NFKD NFKC
Français Franc \ u0327ais Fran \ xe7ais Franc \ u0327ais Fran \ xe7ais
A, E, Y \ u0410, \ u0401, \ u0419 \ u0410, \ u0415 \ u0308, \ u0418 \ u0306 \ u0410, \ u0401, \ u0419
\ u304b \ u3099 \ u304c \ u304b \ u3099 \ u304c
Henry IV Henry IV Henry IV Henry IV Henry IV
Henry Ⅳ Henry \ u2163 Henry \ u2163 Henry IV Henry IV

Dubbelriktad bokstav

Unicode-standarden stöder skrivspråk med vänster-till-höger riktning (eng. vänster till höger, LTR), och med skrivning från höger till vänster (eng. höger-till-vänster, RTL) - till exempel arabiska och hebreiska bokstäver. I båda fallen lagras karaktärerna i en "naturlig" ordning; deras visning, med hänsyn till bokstavets önskade riktning, tillhandahålls av applikationen.

Dessutom stöder Unicode kombinerade texter som kombinerar fragment med olika riktningar av bokstaven. Denna funktion kallas dubbelriktning(eng. dubbelriktad text, BiDi). Vissa förenklade textprocessorer (till exempel i mobiltelefoner) kan stödja Unicode, men har inte stöd för dubbelriktad. Alla Unicode -tecken är indelade i flera kategorier: skrivna från vänster till höger, skrivna från höger till vänster och skrivna i valfri riktning. Symboler för den senare kategorin (främst skiljetecken), när de visas, tar riktningen för den omgivande texten.

Utvalda symboler

Unicode innehåller praktiskt taget alla moderna skript, inklusive:

Övrig.

För akademiska ändamål har många historiska skript lagts till, inklusive: runor, forngrekiska, egyptiska hieroglyfer, kilskrift, maya -skrift, etruskiskt alfabet.

Unicode erbjuder ett brett utbud av matematiska och musikaliska symboler och piktogram.

Emellertid inkluderar Unicode i grunden inte företags- och produktlogotyper, även om de finns i teckensnitt (till exempel Apple -logotypen i MacRoman -kodningen (0xF0) eller Windows -logotypen i Wingdings -teckensnittet (0xFF)). I Unicode -teckensnitt ska logotyper endast placeras i det anpassade teckenområdet.

ISO / IEC 10646

Unicode -konsortiet har ett nära samarbete med arbetsgruppen ISO / IEC / JTC1 / SC2 / WG2, som utvecklar den internationella standarden 10646 (ISO / IEC 10646). Synkronisering upprättas mellan Unicode -standarden och ISO / IEC 10646, även om varje standard använder sin egen terminologi och dokumentationssystem.

Unicode -konsortiets samarbete med International Organization for Standardization (eng. Internationella organisationen för standardisering, ISO ) började 1991. 1993 utfärdade ISO standarden DIS 10646.1. För att synkronisera med den godkände konsortiet version 1.1 av Unicode -standarden, som lade till ytterligare tecken från DIS 10646.1. Som ett resultat är värdena för de kodade tecknen i Unicode 1.1 och DIS 10646.1 exakt desamma.

I framtiden fortsatte samarbetet mellan de två organisationerna. År 2000 synkroniserades Unicode 3.0-standarden med ISO / IEC 10646-1: 2000. Den kommande tredje versionen av ISO / IEC 10646 synkroniseras med Unicode 4.0. Kanske kommer dessa specifikationer till och med att publiceras som en enda standard.

I likhet med UTF-16 och UTF-32-format i Unicode-standarden har ISO / IEC 10646-standarden också två huvudformer för teckenkodning: UCS-2 (2 byte per tecken, liknande UTF-16) och UCS-4 (4 byte per tecken, liknande UTF-32). UCS betyder universell multi-oktett(multibyte) kodad teckenuppsättning(eng. universell teckenuppsättning med flera oktetter ). UCS-2 kan betraktas som en delmängd av UTF-16 (UTF-16 utan surrogatpar) och UCS-4 är en synonym för UTF-32.

Presentationsmetoder

Unicode har flera former av representation (eng. Unicode -transformationsformat, UTF ): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) och UTF-32 (UTF-32BE, UTF-32LE). UTF-7-representationsformuläret utvecklades också för överföring över sju-bitars kanaler, men på grund av inkompatibilitet med ASCII sprids det inte och ingick inte i standarden. Den 1 april 2005 föreslogs två humoristiska bidrag: UTF-9 och UTF-18 (RFC 4042).

Unicode UTF -8: 0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx

Teoretiskt möjligt, men ingår inte i standarden:

0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Även om UTF-8 låter dig ange samma tecken på flera sätt, är bara den kortaste rätt. Resten av blanketterna bör avvisas av säkerhetsskäl.

Byte order

I en UTF-16-dataström kan den höga byten skrivas antingen före den låga (eng. UTF-16 big-endian), eller efter den yngre (eng. UTF-16 little-endian). På samma sätt finns det två varianter av fyra-byte-kodningen-UTF-32BE och UTF-32LE.

För att bestämma formatet för Unicode -representationen skrivs en signatur i början av textfilen - U + FEFF -tecknet (icke -brytande mellanslag med nollbredd), även kallat byte ordermarkering(eng. byte order mark, BOM ). Detta gör det möjligt att skilja mellan UTF-16LE och UTF-16BE eftersom det inte finns något U + FFFE-tecken. Det används också ibland för att beteckna UTF-8-formatet, även om begreppet byteordning inte gäller detta format. Filer som följer denna konvention börjar med dessa bytesekvenser:

UTF-8 EF BB BF UTF-16BE FE FF UTF-16LE FF FE UTF-32BE 00 00 FE FF UTF-32LE FF FE 00 00

Tyvärr skiljer denna metod inte pålitligt mellan UTF-16LE och UTF-32LE, eftersom tecknet U + 0000 tillåts av Unicode (även om riktiga texter sällan börjar med det).

Filer i UTF-16 och UTF-32-kodningar som inte innehåller en BOM måste vara i big-endian (unicode.org) byte-ordning.

Unicode och traditionella kodningar

Introduktionen av Unicode förändrade tillvägagångssättet för traditionella 8-bitars kodningar. Om kodningen tidigare angavs av teckensnittet, nu anges den av korrespondensbordet mellan denna kodning och Unicode. Faktum är att 8-bitars kodningar har blivit en form av att representera en delmängd av Unicode. Detta gjorde det mycket lättare att skapa program som måste fungera med många olika kodningar: nu, för att lägga till stöd för ytterligare en kodning, behöver du bara lägga till en annan Unicode -uppslagstabell.

Dessutom gör många dataformat det möjligt att infoga Unicode-tecken, även om dokumentet är skrivet i den gamla 8-bitars kodningen. Du kan till exempel använda ampersand -koder i HTML.

Genomförande

De flesta moderna operativsystem ger en viss grad av Unicode -stöd.

En av de första framgångsrika kommersiella implementeringarna av Unicode var Java -programmeringsmiljön. Det övergav i princip 8-bitars representation av tecken till förmån för 16-bitars. De flesta programmeringsspråk stöder nu Unicode -strängar, även om deras representation kan variera beroende på implementeringen.

Inmatningsmetoder

GNU / Linux -konsolen gör det också möjligt att ange ett Unicode -tecken med dess kod - för detta måste teckenets decimalkod anges som siffror i det utökade tangentbordet medan du håller ned Alt -tangenten. Du kan också ange tecken med sin hexadecimala kod: för att göra detta måste du hålla ned AltGr-tangenten och för att ange siffrorna A-F använder du tangenterna i det utökade tangentbordet från NumLock till Enter (medurs). Inmatning i enlighet med ISO 14755 stöds också. För att ovanstående metoder ska fungera måste du aktivera Unicode -läge i konsolen genom att ringa unicode_start (1) och välja lämpligt teckensnitt genom att ringa setfont (8).

Stavningen av "Unicode" har redan fast intagit de ryskspråkiga texterna. Enligt Yandex används ordet ungefär 11 gånger Unicode. Wikipedia använder en vanligare version.

Det finns en särskild sida på konsortiets webbplats, där problemen med överföringen av ordet "Unicode" på olika språk och skrivsystem beaktas. För det ryska kyrilliska alfabetet är alternativet "Unicode" specificerat.

Formerna som antagits av utländska organisationer för den ryska överföringen av ordet "Unicode" är rådgivande.

se även

  • Projekt: Introduktion av symbolerna för alfabet för Rysslands folk i Unicode

Anteckningar

  1. Unicode -transkriberingar. Arkiverad från originalet den 22 augusti 2011. Hämtad 10 maj 2010.
  2. Unicode i Paratype Dictionary
  3. Unicode® -standarden: En teknisk introduktion. Arkiverad
  4. Historik om Unicode -utgivnings- och publiceringsdatum. Arkiverad från originalet den 22 augusti 2011. Hämtad 4 juli 2010.
  5. Unicode -konsortiet. Arkiverad från originalet den 22 augusti 2011. Hämtad 4 juli 2010.
  6. Förord. Arkiverad från originalet den 22 augusti 2011. Hämtad 4 juli 2010.
  7. Allmän struktur. Arkiverad från originalet den 22 augusti 2011. Hämtad 5 juli 2010.
  8. Europeiska alfabetiska skript. Arkiverad från originalet den 22 augusti 2011. Hämtad 4 juli 2010.
  9. Unicode 88. Arkiverad från originalet den 22 augusti 2011. Hämtad 8 juli 2010.
  10. Unicode och Microsoft Windows NT (engelska). Microsofts support... Arkiverad
  11. Unicode används av nästan 50% av webbplatserna (ryska). Arkiverad från originalet den 22 augusti 2011.
  12. Färdplan till TIP (Tertiary Ideographic Plane)
  13. http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt (engelska)
  14. Unicode -fall är knepigt
  15. De flesta PC -teckensnitt implementerar "versaler" i sidled.
  16. I vissa fall kan ett dokument (inte vanlig text) i Unicode ta betydligt mindre plats än ett enda byte-dokument. Till exempel, om en viss webbsida innehåller ungefär lika delar av rysk och grekisk text, måste antingen ryska eller grekiska bokstäver skrivas i en enda byte-kodning med hjälp av dokumentformatets funktioner, i form av koder med en ampersand, som upptar 6-7 byte per tecken (när man använder decimalkoder), dvs i genomsnitt 3,5-4 byte per bokstav, medan UTF-8 bara tar 2 byte per grekisk eller rysk bokstav.
  17. En av Arial Unicode -teckensnittsfiler är 24 megabyte stor. det finns Times New Roman 120 megabyte i storlek, det innehåller antalet tecken nära 65536.
  18. Även för den mest moderna och dyraste mobiltelefonen är det svårt att tilldela 120 MB minne för ett fullständigt Unicode -teckensnitt. I praktiken krävs fullständiga teckensnitt sällan.
  19. 350 tusen Unicode -sidor kontra 31 tusen Unicode -sidor.

Länkar

  • Officiell webbplats för Unicode Consortium (eng.)
  • Unicode i Open Directory Project Links Directory Directory (dmoz). (Engelsk)
  • Vad är Unicode? (Ryska)
  • Senaste versionen av Unicode -standarden
  • Unicode -teckenbord med namn och beskrivningar (ryska) (engelska)
  • Unicode och ISO / IEC 10646 Relation (PDF -fil)
  • UTF-8 och Unicode FAQ
  • Kyrilliska i Unicode:

I försök att konfigurera en eller annan funktion på Internet har någon användare troligen stött på ett sådant begrepp som "Unicode". För att ta reda på vad detta begrepp betyder, läs den här artikeln till slutet.

Unicode: definition

Termen "Unicode" betyder idag en teckenkodningsstandard. Denna standard föreslogs 1991 av den ideella organisationen Unicode Inc. Unicode -standarden var utformad för att kombinera ett stort antal olika tecken i ett dokument. En sida som skapats på grundval av en sådan kodning kan innehålla hieroglyfer, bokstäver och matematiska symboler. I denna kodning visas alla tecken utan problem.

"Unicode": skäl för skapandet

Långt före Unicode -systemets tillkomst valdes kodningar utifrån preferenser från dokumentförfattaren. Av denna anledning var det ofta nödvändigt att använda olika tabeller för att kunna läsa ett dokument. Detta måste dock göras flera gånger. Detta gjorde livet mycket svårare för vanliga användare. Som nämnts tidigare, den ideella organisationen Unicode Inc. föreslog att använda en ny typ av informationskodning. Denna typ av kodning skapades för att kombinera en mängd olika standarder. Unicode -kodningen gjorde det möjligt att uppnå det omöjliga: att skapa ett verktyg som stöder ett stort antal karaktärer. Det erhållna resultatet överträffade förväntningarna: vi fick dokument som samtidigt kunde innehålla både rysk och engelsk text samt matematiska uttryck och latin. Innan man skapade ett enhetligt kodningssystem måste utvecklare lösa ett antal problem som uppstår på grund av att det finns ett stort antal standarder som redan fanns för tillfället. Det vanligaste av dessa problem var begränsad teckenuppsättning, elvish skrift, dubbletter av typsnitt och problemet med att konvertera olika kodningar.

"Unicode": en utflykt till historien

Föreställ dig följande bild: på 80 -talets innergård har datortekniken ännu inte blivit så utbredd och har en form som skiljer sig från idag. Varje operativsystem är unikt på sitt eget sätt och modifieras av entusiaster för vissa specifika behov. Som ett resultat ledde behovet av informationsutbyte till ytterligare förbättringar. När du försöker läsa ett dokument som skapats i ett annat operativsystem, visar skärmen vanligtvis obegripliga teckenuppsättningar. Detta krävde ytterligare arbete med kodningen, vilket inte alltid gick att göra snabbt. Ibland tog det flera månader att bearbeta det dokument som krävs. Användare som ofta måste utbyta information började skapa speciella konverteringstabeller för sig själva. Att arbeta med sådana tabeller avslöjade en intressant egenskap: det är nödvändigt att skapa sådana tabeller samtidigt i två riktningar. Maskinen kan inte utföra vanlig inversion av beräkning. För det är källfilen skriven i den högra kolumnen, och resultatet är i den vänstra. Tvärtom kan de inte ordnas om. Om det var nödvändigt att använda vissa specialtecken i dokumentet, först måste de läggas till, och sedan var det också nödvändigt att förklara för en annan användare vad som behöver göras med dem så att de inte blir till "kryakozyabry". Det bör också komma ihåg att du var tvungen att utveckla dina egna teckensnitt för varje kodning. Detta ledde till att det skapades ett stort antal dubbletter i operativsystemet. Så, till exempel, på en sida kunde en användare se ett dussin teckensnitt identiska med standard Times New Roman, men markerade med UCS-2, UTF-16, UTF-8, ANSI. Det finns således ett behov av att utveckla en universell standard.

Unicode: skapare

Historien om skapandet av "Unicode" kan spåras tillbaka till 1987. Det var då Joe Becker från Xerox, tillsammans med Mark Davis och Lee Collins från Apple, påbörjade forskning om den praktiska utvecklingen av en universell kodning. 1988 publicerade Joe Becker ett projekt för att skapa en internationell flerspråkig kodning. Några månader senare utökades arbetsgruppen för utvecklingen av Unicode. Det inkluderade experter som Glenn Wright från Sun Microsystems, Mike Kernegan och Ken Whistler från RLG. Detta gjorde det möjligt att slutföra arbetet med den preliminära bildandet av en enhetlig kodningsstandard.

Unicode: allmän beskrivning

Unicode är baserat på det allmänna begreppet karaktär. Denna definition förstås som ett abstrakt fenomen som existerar i form av skrivande, implementerat genom grafem. I Unicode är varje tecken associerat med en unik kod som tillhör ett eller annat block av standarden. Så till exempel finns grafemet "B" på både engelska och ryska, men det motsvarar två olika symboler. Dessa tecken kan också konverteras till gemener. Det betyder att var och en av dessa symboler beskrivs med en nyckel, en uppsättning egenskaper och ett namn.

Unicode: Fördelar

Det skiljer sig från andra moderna kodningssystem "Unicode" genom ett stort utbud av tecken för "kryptering" av olika tecken. Saken är att de tidigare kodningarna bara hade 8 bitar. Det betyder att de bara stödde 28 tecken. Den nya utvecklingen hade 216 tecken, vilket var ett stort steg framåt. Således blev det möjligt att koda nästan alla befintliga alfabet. Behovet av att använda konverteringstabeller med tillkomsten av "Unicode" har försvunnit. Närvaron av en enda standard reducerade helt enkelt deras användbarhet till noll. Samtidigt försvann också "kryakozyabry". Framväxten av en ny standard gjorde deras existens omöjlig. Behovet av att skapa dubbletter av typsnitt eliminerades också.

Unicode: utveckling

Trots att framstegen inte står stilla fortsätter Unicode -kodningen att ha den ledande positionen i världen. Detta blev möjligt till stor del på grund av att det blev enkelt att implementera och blev utbrett. Man bör dock inte anta att samma Unicode -kodning används idag som för 25 år sedan. Version 5.x.x används idag. Antalet kodade tecken har ökat till 231. Sedan starten till version 2.0.0 har Unicode -kodningen nästan fördubblat antalet tecken den innehåller. Under de följande åren fortsatte denna tillväxt av möjligheter. När version 4.0.0 dök upp blev det nödvändigt att höja själva standarden. Som ett resultat förvärvade Unicode -kodningen den form i vilken vi känner den idag.

Vad mer är användbart i Unicode? Förutom det enorma, ständigt växande antalet tecken har Unicode -kodningen en ganska användbar funktion. Detta är normalisering. Kodningen slöser inte med datorresurser på regelbunden kontroll av samma tecken, vilket kan ha en liknande stavning i olika alfabet. För detta ändamål används en speciell algoritm, som gör det möjligt att återge liknande symboler separat i en graf och hänvisa till dem, och inte kontrollera all information varje gång. Totalt har fyra sådana algoritmer utvecklats och implementerats. Transformationen i var och en av dem utförs enligt en viss princip som skiljer sig från de andra.

Ett antal siffror och bokstäver har en utåt liknande kontur, knappast urskiljbar med en liten teckenstorlek. Till exempel siffrorna "0", "1" och bokstäverna "O", "l" (L). Detta är ett allvarligt problem, särskilt i de fall där en strikt entydig läsning av karaktärer krävs. Till exempel när du skriver med en penna på ett papper eller skriver ut ditt alfanumeriska lösenord på en skrivare. Lösningen på detta problem måste hanteras av de första programmerarna och teckensnittsdesignerna (på 1900 -talet, i början av datatiden). Under lång tid har speciella kontrasterande teckensnitt dykt upp, till exempel Inconsolata, Consolas (system i OS Windows), Anonym Pro, Deja Vu Sans Mono och många andra. Några av dem kan laddas ner gratis med länkar från deras författares och skapares webbplatser och från specialiserade internetresurser.
Se ett exempel:
http://www.levien.com/type/myfonts/inconsolata.html

Om det är tillåtet av de tekniska förutsättningarna och designuppdraget, läggs "Ø" i stället för en digital nolla i HTML -koden (latin stor bokstav O med streck, med en snedstreck, från modifieringen av det latinska alfabetet för det skandinaviska språk- norska och danska), ungefär lika i sin stil, på en noll streckad i hälften. I en textredigerare tas en sådan ikon, kopieras från tabellen Specialtecken och infogas på önskad plats på raden. Detta livshack kommer att vara användbart om du har svårt att hitta och installera ett speciellt teckensnitt på din enhet. Detta tips sparar tid och förvirrar inte siffran "0" (noll) med bokstaven "O", inte bara på din datorskärm utan också på skärmarna på andra enheter, där det nödvändiga teckensnittet kanske inte visas. Denna form av inspelning används traditionellt när du anger blandad alfanumerisk information på ett pappersark, till exempel ditt lösenord, åtkomstkod. Det är anmärkningsvärt att det till och med finns ett humoristiskt uttryck "", som betonar vikten av närvaron av detta element, vilket ger symbolen en viss mening och mening. Grafiskt utseende på noll i olika typer av teckensnitt - du kan se och jämföra deras bild i bilder med hjälp av en specialiserad tjänst på webbplatsens sida:
http://www.fileformat.info/info/unicode/char/0030/fontsupport.htm

Bild 2

Vid redigering och redigering av text görs genomstrykning av ett felaktigt skrivet eller onödigt tecken med ett stort snett kors (två diagonala streck med samma längd). I en textredigerare görs detta med hjälp av formatering - först väljs ett fragment och sedan trycks en sekvens av knappar och flikar (Format - tecken - teckensnittseffekter - genomslag) i menyn för att välja önskad effekt från listrutor. Genomslag av ett eller flera ord på en rad eller i ett helt stycke i ett dokument görs med hjälp av en horisontell enkel eller dubbel linje med tillräcklig tjocklek.

Om du behöver ta reda på exakt vad som står i texten - en bokstav eller ett nummer, kan du i sökläget på sidan ställa in önskat tecken och se till att det kommer att hittas exakt där.

Standarden föreslogs 1991 av Unicode Consortium, Unicode Inc., en ideell organisation. Användningen av denna standard gör det möjligt att koda ett mycket stort antal tecken från olika skript: i Unicode -dokument kan kinesiska tecken, matematiska tecken, bokstäver i det grekiska alfabetet, latin och kyrilliska alfabetet samexistera, så att byta kodsidor blir onödigt.

Standarden består av två huvudavsnitt: den universella teckenuppsättningen (UCS) och Unicode -transformationsformatet (UTF). Den universella teckenuppsättningen definierar en en-till-en-korrespondens mellan tecken och koder-element i kodutrymmet som representerar icke-negativa heltal. Kodningsfamiljen definierar maskinrepresentationen av en sekvens av UCS -koder.

Unicode -standarden utvecklades med målet att skapa en enda teckenkodning för alla moderna och många gamla skriftspråk. Varje tecken i denna standard är kodat i 16 bitar, vilket gör det möjligt att täcka ett ojämförligt större antal tecken än tidigare accepterade 8-bitars kodningar. En annan viktig skillnad mellan Unicode och andra kodningssystem är att den inte bara tilldelar varje kod en unik kod utan också definierar olika egenskaper hos denna karaktär, till exempel:

Teckentyp (versaler, gemener, siffror, skiljetecken etc.);

Teckenattribut (vänster-till-höger eller höger-till-vänster-display, mellanslag, radbrytning, etc.);

Motsvarande versal eller liten bokstav (för gemener respektive stora bokstäver);

Motsvarande numeriskt värde (för numeriska tecken).

Hela kodområdet från 0 till FFFF är uppdelat i flera standardundermängder, som var och en motsvarar antingen ett alfabet för ett visst språk, eller en grupp specialtecken som liknar varandra i sina funktioner. Diagrammet nedan ger en allmän lista över Unicode 3.0 -delmängderna (figur 2).

Bild 2

Unicode -standarden är grunden för lagring och text i många moderna datorsystem. Det är dock inte kompatibelt med de flesta internetprotokoll, eftersom dess koder kan innehålla alla bytevärden och protokollen vanligtvis använder byte 00 - 1F och FE - FF som overhead. För att uppnå kompatibilitet har flera Unicode-transformationsformat (UTF, Unicode Transformation Formats) utvecklats, varav UTF-8 är det vanligaste idag. Detta format definierar följande regler för att konvertera varje Unicode -kod till en uppsättning byte (en till tre) som är lämpliga för transport med internetprotokoll.


Här betecknar x, y, z bitarna i källkoden som måste extraheras, med början med den minst signifikanta, och matas in i resultatbyte från höger till vänster tills alla angivna positioner är fyllda.

Vidareutveckling av Unicode -standarden är förknippad med tillägg av nya språkplan, dvs. tecken i intervallet 10000 - 1FFFF, 20000 - 2FFFF, etc., där det ska inkludera kodning för skript för döda språk som inte ingår i tabellen ovan. Ett nytt UTF-16-format utvecklades för att koda dessa ytterligare tecken.

Således finns det fyra huvudsakliga sätt att koda Unicode -byte:

UTF-8: 128 tecken är kodade i en byte (ASCII-format), 1920 tecken är kodade i 2 byte ((romerska, grekiska, kyrilliska, koptiska, armeniska, hebreiska, arabiska tecken), 63488 tecken är kodade i 3 byte (kinesiska , Japanska och andra) Resterande 2 147 418 112 tecken (ännu inte använda) kan kodas med 4, 5 eller 6 byte.

UCS-2: Varje tecken representeras av 2 byte. Denna kodning innehåller endast de första 65 535 tecknen från Unicode -formatet.

UTF-16: Detta är ett tillägg till UCS-2 och innehåller 1 114 112 Unicode-tecken. De första 65 535 tecknen representeras av 2 byte, resten av 4 byte.

USC-4: Varje tecken är kodat i 4 byte.

Tro det eller ej, det finns ett bildformat inbyggt i webbläsaren. Detta format gör att bilder kan laddas innan de behövs, gör bilden på vanliga eller näthinneskärmar och tillåter att CSS läggs till bilder. OK, det är inte helt sant. Detta är inte ett bildförhållande, även om allt annat fortfarande är giltigt. Med den kan du skapa upplösningsoberoende ikoner som inte tar tid att ladda och är utformade med CSS.

Vad är Unicode?

Unicode är möjligheten att korrekt visa bokstäver och skiljetecken från olika språk på en sida. Det är otroligt användbart: användare kommer att kunna arbeta med din webbplats över hela världen och det kommer att visa vad du vill - det kan vara franska med accenter eller Kanji.

Unicode fortsätter att utvecklas: nu är version 8.0 relevant, där det finns mer än 120 tusen tecken (i den ursprungliga artikeln, publicerad i början av 2014, handlade det om version 6.3 och 110 tusen tecken).

Förutom bokstäver och siffror finns det andra symboler och ikoner i Unicode. I de senaste versionerna inkluderar dessa emojis som du kan se i iOS -messenger.

HTML -sidor skapas från en sekvens av Unicode -tecken och konverteras till byte när de skickas över nätverket. Varje bokstav och varje tecken på alla språk har sin egen unika kod och kodas när filen sparas.

När du använder UTF-8-kodningssystemet kan du direkt infoga Unicode-tecken i texten, men du kan också lägga till dem i texten genom att ange en digital symbolisk länk. Till exempel är detta en hjärtsymbol, och du kan visa den symbolen helt enkelt genom att lägga till kod i markeringen.

Denna numeriska referens kan anges i antingen decimal eller hexadecimalt format. Decimalformatet kräver att bokstaven x läggs till i början, notationen ger samma hjärta () som det föregående alternativet. (2665 är den hexadecimala versionen av 9829).

Om du lägger till ett Unicode -tecken med CSS kan du bara använda hexvärden.

Några av de vanligaste Unicode -tecknen har mer minnesvärda textnamn eller förkortningar istället för numeriska koder, till exempel ampersand (& - &). Sådana symboler kallas minnesbilder i HTML, en komplett lista finns på Wikipedia.

Varför ska du använda Unicode?

Bra fråga, här är några skäl:

  1. För att använda rätt tecken från olika språk.
  2. För att ersätta ikoner.
  3. För att ersätta ikoner som är anslutna via @ font-face.
  4. För att definiera CSS -klasser

Giltiga tecken

Det första skälet kräver inga ytterligare åtgärder. Om HTML-filen sparas i UTF-8-format och dess kodning överförs över nätverket som UTF-8, ska allt fungera som det ska.

Måste. Tyvärr stöder inte alla webbläsare och enheter alla Unicode -tecken på samma sätt (mer exakt, inte alla teckensnitt stöder hela teckenuppsättningen). Till exempel stöds nyligen tillagda emoji -tecken inte överallt.

För UTF-8-stöd i HTML5-tillägg (om du inte har åtkomst till serverinställningarna bör du också lägga till ). Den gamla doctypen använder ( ).

Ikoner

Den andra anledningen till att använda Unicode är att det finns många användbara symboler som kan användas som ikoner. Till exempel ≡ och.

Deras uppenbara fördel är att du inte behöver några ytterligare filer för att lägga till dem på sidan, vilket innebär att din webbplats blir snabbare. Du kan också ändra färg eller lägga till en droppskugga med CSS. Och genom att lägga till övergångar (css -övergång) kan du smidigt ändra färg på ikonen när du håller muspekaren över den utan några extra bilder.

Låt oss säga att jag vill inkludera en stjärngraderingsindikator på min sida. Jag kan göra så här:

★ ★ ★ ☆ ☆

Du får följande resultat:

Men om du har otur kommer du att se något så här:

Samma betyg på BlackBerry 9000

Detta händer om de tecken som används inte finns i webbläsarens eller enhetens teckensnitt (lyckligtvis stöds dessa asterisker väl och äldre BlackBerry -telefoner är det enda undantaget här).

Om det inte finns något Unicode -tecken kan det i stället finnas olika tecken från en tom kvadrat (□) till en diamant med ett frågetecken (�).

Hur hittar du ett Unicode -tecken som kan fungera för din design? Du kan söka efter det på en webbplats som Unicodinator genom att bläddra bland de tillgängliga tecknen, men det finns ett bättre alternativ. - denna fantastiska webbplats låter dig rita ikonen du letar efter och erbjuder dig sedan en lista med liknande Unicode -tecken.

Använda Unicode med @ font-face ikoner

Om du använder ikoner som ansluter till ett externt teckensnitt via @ font-face kan Unicode-tecken användas som en reserv. På så sätt kan du visa ett liknande Unicode-tecken på enheter eller webbläsare där @ font-face inte stöds:

Till vänster finns Font Awesome -ikonerna i Chrome, och till höger är deras Unicode -ersättare i Opera Mini.

Många @ font-face matchningsverktyg använder en rad Unicode-tecken från det privata användningsområdet. Problemet med detta tillvägagångssätt är att om @ font-face inte stöds, skickas teckenkoder till användaren utan någon mening.

Perfekt för att skapa ikonuppsättningar i @ font-face och låter dig välja ett lämpligt Unicode-tecken som grund för ikonen.

Men varnas - vissa webbläsare och enheter gillar inte enskilda Unicode -tecken när de används med @ font -face. Det är vettigt att söka efter Unicode -teckenstöd med Unify - den här appen hjälper dig att avgöra hur säkert det är att använda ett tecken i @ font -face ikonerna.

Unicode -teckenstöd

Huvudproblemet med att använda Unicode -tecken som en backback är dåligt stöd i skärmläsare (återigen, lite information om detta kan hittas på Unify), så det är viktigt att välja de tecken du använder noggrant.

Om din ikon bara är ett dekorativt element bredvid en textetikett som kan läsas av en skärmläsare behöver du inte oroa dig för mycket. Men om ikonen är ensam är det värt att lägga till en dold textetikett för att hjälpa skärmläsare. Även om ett Unicode -tecken läses av en skärmläsare finns det en chans att det kommer att skilja sig mycket från det avsedda syftet. Till exempel kommer ≡ (≡) som en hamburgarikon att läsas som "identisk" av VoiceOver på iOS.

Unicode i CSS -klassnamn

Det faktum att Unicode kan användas i klassnamn och stilark har varit känt sedan 2007. Det var då Jonathan Snook skrev om användningen av Unicode -karaktärer i hjälparklasser när han skrev rundade hörn. Denna idé har inte fått mycket distribution, men det är värt att veta om möjligheten att använda Unicode i klassnamn (specialtecken eller kyrilliska).

Val av teckensnitt

Få teckensnitt stöder hela uppsättningen Unicode -tecken, så se till att du letar efter tecknen du vill ha när du väljer ett teckensnitt.

Massor av ikoner i Segoe UI Symbol eller Arial Unicode MS. Dessa teckensnitt finns på både PC och Mac; Lucida Grande har också en hel del Unicode -karaktärer. Du kan lägga till dessa teckensnitt i teckensnittsfamiljeförklaringen för att säkerställa att det maximala antalet Unicode-tecken är tillgängligt för användare som har dessa teckensnitt installerade.

Bestämmer Unicode -stöd

Det skulle vara fantastiskt att kunna kontrollera om det finns en viss Unicode -karaktär, men det finns inget garanterat sätt att göra detta.

Unicode -tecken kan vara effektiva med stöd. Till exempel gör emojierna i ämnesraden att den sticker ut från resten i inkorgen.

Slutsats

Denna artikel täcker bara grunderna i Unicode. Jag hoppas att du tycker att det är till hjälp för dig att förstå Unicode bättre och använda det effektivt.

Lista med länkar

  • (Unicode-baserad @ font-face iconset-generator)
  • Shape Catcher (Unicode teckenigenkänningsverktyg)
  • Unicodinator (Unicode -teckentabell)
  • Unify (Sök efter Unicode -teckenstöd i webbläsare)
  • Unitools (en samling verktyg för att arbeta med Unicode)






2021 gtavrl.ru.