Hem fleråriga blommor Avkoda tecken till ryska. Vad är ANSI-kodning och vad äts det med? Felaktig visning av symboler

Avkoda tecken till ryska. Vad är ANSI-kodning och vad äts det med? Felaktig visning av symboler

Webbplatskodning (Encoding) är en motsvarighet av en nummerserie till tecken (siffror, bokstäver, tecken och andra specialtecken). De vanligaste kodningarna är ASCII tillsammans med Unicode UTF-8 och Windows-1251. I innehållet är en speciell metatagg ansvarig för kodning: , som anger en specifik typ av kod för sidor. I det här fallet är det UTF-8 unicode.

I enkla ord är dessa standardtecken och siffror som motsvarar en viss typ av uppsättning skrivna bokstäver, siffror, tecken och andra element. Oftast används en typ av kodning på sajten, men det finns undantag när flera kodningar kan ställas in samtidigt. Detta kan dock leda till felaktig visning av hela webbresursen. Många webbplatser använder kodningsstandarden - UTF-8, eftersom denna typ av kod stöds av många välkända webbläsare, sökmotorer, servrar och andra plattformar. Mycket ofta finns det situationer när kodningen som anges på webbplatsen inte matchar den som är inställd på servern. Den främsta orsaken till detta fenomen är att leverantören inte stöder den tillhandahållna typen av kodning, vilket resulterar i att den skickar "sin egen", vilket faktiskt leder till felaktig visning av information. En kodning är en tabell som beskriver all överensstämmelse mellan ett visst tecken och ett tal. Varje symbol som är synlig på webbplatsen representerar bara en uppsättning bitar för datorn (en viss uppsättning nollor och andra).

Typer av webbplatskodningar

Totalt finns det flera typer av kodningar i internetvärlden:

  • ASCII är den allra första kodningen som antogs av American National World Standards Institute. Endast 7 bitar användes för kodning, där för första gången 128 värden placeras i det engelska alfabetet, såväl som alla siffror, tecken och symboler. Denna kodning är inte universell och användes oftast på engelskspråkiga webbplatser.
  • Cyrillic är en verkligt inhemsk version. Kodningen använde den andra delen av huvudkodtabellen, eller snarare tecken från 129 till 256. Används på ryskspråkiga webbplatser och bloggar.
  • Kodningar 1250-1258 (MS Windows och Windows-system) är standard 8-bitars kodningar som dök upp omedelbart efter lanseringen av det välkända Microsoft Windows-operativsystemet. Siffrorna 1250 till 1258 är riktade till det språk som används av kodningen. 1250 är språken i Centraleuropa och 1251 är för det kyrilliska alfabetet.
  • KOI8 - står för 8-bitars informationsutbyteskod. Ryska kyrilliska standarder används vanligtvis i Unix och liknande system, där standarden KOI-7, KOI8-R och KOI8-U är i kraft.
  • Unicode (originalnamn Unicode) är en välkänd teckenkodningsstandard som låter dig beskriva tecknen i bokstavligen alla världsspråk. Betecknas ofta "U+xxxx", där "xxxx" är hexadecimala värden. Den vanligaste familjen av denna kodning är UTF (Unicode-Transformation Format), det vill säga UTF-8, 16 och 32.

Varje enskild vy kan användas direkt på vilken webbplats som helst.

Universella och populära kodningar

Hittills anses UTF-8-kodningen vara den mest populära och välkända, och det är tack vare den som det är möjligt att säkerställa maximal kompatibilitet med alla gamla system som använde de vanliga 8-bitars teckentyperna. UTF-8-kodningen inkluderar de flesta webbplatser som finns på Internet, och denna standard anses vara universell. UTF-8 stöder både kyrilliska och latinska.

Hej kära läsare av bloggsidan. Idag kommer vi att prata med dig om var krakozyabrs kommer ifrån på webbplatsen och i program, vilka textkodningar som finns och vilka som ska användas. Låt oss ta en närmare titt på historien om deras utveckling, med början från den grundläggande ASCII, såväl som dess utökade versioner CP866, KOI8-R, Windows 1251, och slutar med de moderna kodningarna av Unicode Consortium UTF 16 och 8.

För vissa kan den här informationen verka överflödig, men du skulle veta hur många frågor jag får specifikt angående utsökta krakozyabrs (en oläsbar teckenuppsättning). Nu kommer jag att ha möjlighet att hänvisa alla till texten i denna artikel och självständigt leta efter mina jambs. Nåväl, gör dig redo att ta till dig informationen och försök att följa berättelsens gång.

ASCII - grundläggande textkodning för latin

Utvecklingen av textkodningar skedde samtidigt med bildandet av IT-branschen, och under denna tid lyckades de genomgå en hel del förändringar. Historiskt började allt med EBCDIC, som var ganska dissonant i ryskt uttal, vilket gjorde det möjligt att koda bokstäver i det latinska alfabetet, arabiska siffror och skiljetecken med kontrolltecken.

Men ändå bör utgångspunkten för utvecklingen av moderna textkodningar anses vara den berömda ASCII(American Standard Code for Information Interchange, som på ryska brukar uttalas som "aski"). Den beskriver de första 128 tecknen som oftast används av engelska användare - , arabiska siffror och skiljetecken.

Även i dessa 128 tecken som beskrivs i ASCII, fanns det några servicetecken som parenteser, staplar, asterisker, etc. Du kan faktiskt se dem själv:

Det är dessa 128 tecken från originalversionen av ASCII som har blivit standarden, och i all annan kodning kommer du definitivt att möta dem och de kommer att stå i den ordningen.

Men faktum är att med hjälp av en byte information är det möjligt att koda inte 128, utan så många som 256 olika värden (två i åtta potens är lika med 256), så efter den grundläggande versionen av Asuka, en hel serie av utökade ASCII-kodningar, där det, förutom 128 grundläggande tecken, också var möjligt att koda symboler för den nationella kodningen (till exempel ryska).

Här är det nog värt att säga lite mer om de talsystem som används i beskrivningen. För det första, som ni alla vet, fungerar en dator bara med siffror i det binära systemet, nämligen med nollor och ettor ("boolesk algebra", om någon studerat på ett institut eller i skolan). , som var och en är en tvåa i graden, från noll och upp till två i den sjunde:

Det är inte svårt att förstå att det bara kan finnas 256 av alla möjliga kombinationer av nollor och ettor i en sådan konstruktion. Att konvertera ett tal från binärt till decimalt är ganska enkelt. Du behöver bara lägga ihop alla krafter av två, över vilka det finns ettor.

I vårt exempel är detta 1 (2 till noll) plus 8 (två till 3), plus 32 (två till femte), plus 64 (till sexan), plus 128 (till sjunde) . Totalt får 233 i decimalnotation. Som du kan se är allt väldigt enkelt.

Men om du tittar närmare på tabellen med ASCII-tecken ser du att de är representerade i hexadecimal kodning. Till exempel motsvarar "asterisk" i Asci det hexadecimala talet 2A. Du vet säkert att förutom arabiska siffror använder det hexadecimala talsystemet även latinska bokstäver från A (som betyder tio) till F (som betyder femton).

Tja, för konvertera binär till hexadecimal ta till följande enkla och visuella metod. Varje byte med information är uppdelad i två delar om fyra bitar, som visas i skärmdumpen ovan. Den där. i varje halvbyte kan endast sexton värden kodas i binär kod (två till fjärde potens), som enkelt kan representeras som ett hexadecimalt tal.

Dessutom, i den vänstra halvan av byten, kommer det att vara nödvändigt att räkna graderna igen, med början från noll, och inte som visas på skärmdumpen. Som ett resultat, genom enkla beräkningar, får vi att talet E9 är kodat i skärmdumpen. Jag hoppas att mitt resonemang och lösningen på detta pussel visade sig vara tydlig för dig. Nåväl, låt oss nu fortsätta, faktiskt, att prata om textkodningar.

Utökade versioner av Asuka - CP866 och KOI8-R-kodningar med pseudografi

Så vi började prata om ASCII, som så att säga var utgångspunkten för utvecklingen av alla moderna kodningar (Windows 1251, Unicode, UTF 8).

Från början innehöll den bara 128 tecken i det latinska alfabetet, arabiska siffror och något annat, men i den utökade versionen blev det möjligt att använda alla 256 värden som kan kodas i en byte med information. De där. det blev möjligt att lägga till tecken i bokstäverna i ditt språk till Asci.

Här kommer det att bli nödvändigt att avvika igen för att förklara - Varför behöver du kodning överhuvudtaget? texter och varför det är så viktigt. Tecknen på din datorskärm bildas på grundval av två saker - uppsättningar av vektorformer (representationer) av alla typer av tecken (de finns i co-filer) och en kod som låter dig dra ut från denna uppsättning vektorformer ( teckensnittsfil) exakt det tecken som du behöver infoga på rätt plats.

Det är tydligt att typsnitt är ansvariga för själva vektorformerna, men operativsystemet och programmen som används i det står för kodningen. De där. all text på din dator kommer att vara en uppsättning byte, som var och en kodar ett enda tecken i just denna text.

Programmet som visar denna text på skärmen (textredigerare, webbläsare etc.), när koden analyseras, läser kodningen av nästa tecken och letar efter motsvarande vektorform i den önskade teckensnittsfilen som är ansluten för att visa denna text dokumentera. Allt är enkelt och banalt.

Detta innebär att för att koda alla tecken vi behöver (till exempel från det nationella alfabetet) måste två villkor vara uppfyllda - vektorformen för detta tecken måste vara i det teckensnitt som används, och detta tecken kan kodas i utökade ASCII-kodningar i en byte. Därför finns det en hel massa sådana alternativ. Endast för att koda tecken på det ryska språket finns det flera varianter av den utökade Aska.

Till exempel fanns det från början CP866, där det var möjligt att använda tecknen i det ryska alfabetet och det var en utökad version av ASCII.

De där. dess övre del sammanföll helt med den grundläggande versionen av Asuka (128 latinska tecken, siffror och annat skit), som visas i skärmdumpen precis ovan, men den nedre delen av tabellen med CP866-kodning hade den form som anges i skärmdumpen precis nedan och får koda ytterligare 128 tecken (ryska bokstäver och alla typer av pseudografi där):

Du ser, i den högra kolumnen börjar siffrorna med 8, eftersom siffror från 0 till 7 hänvisar till ASCII-basdelen (se den första skärmdumpen). Den där. den ryska bokstaven "M" i CP866 kommer att ha koden 9C (den ligger i skärningspunkten mellan motsvarande rad med 9 och kolumnen med numret C i det hexadecimala talsystemet), som kan skrivas i en byte med information , och om det finns ett lämpligt typsnitt med ryska tecken, kommer denna bokstav utan problem att visas i texten.

Var kom denna summa ifrån? pseudografi i CP866? Saken är den att den här kodningen för rysk text utvecklades redan under dessa håriga år, när det inte fanns någon sådan distribution av grafiska operativsystem som det är nu. Och i Dosa, och liknande textoperativsystem, gjorde pseudografik det möjligt att på något sätt diversifiera designen av texter, och därför finns det i överflöd av CP866 och alla dess andra kamrater från kategorin utökade versioner av Asuka.

CP866 distribuerades av IBM, men utöver detta utvecklades ett antal kodningar för ryska tecken, till exempel kan samma typ (extended ASCII) tillskrivas KOI8-R:

Principen för dess funktion förblir densamma som för CP866 som beskrevs lite tidigare - varje tecken i texten kodas av en enda byte. Skärmdumpen visar den andra halvan av KOI8-R-tabellen, eftersom den första halvan motsvarar helt den grundläggande Asuka, som visas i den första skärmdumpen i den här artikeln.

Bland funktionerna i KOI8-R-kodningen kan det noteras att de ryska bokstäverna i dess tabell inte är i alfabetisk ordning, som till exempel gjordes i CP866.

Om du tittar på den allra första skärmdumpen (av basdelen, som ingår i alla utökade kodningar), kommer du att märka att i KOI8-R finns ryska bokstäver i samma celler i tabellen som bokstäverna i det latinska alfabetets konsonant med dem från den första delen av tabellen. Detta gjordes för att underlätta att byta från ryska till latinska tecken genom att bara kassera en bit (två till sjunde potens eller 128).

Windows 1251 - den moderna versionen av ASCII och varför krakozyabry kryper ut

Ytterligare utveckling av textkodningar berodde på det faktum att grafiska operativsystem blev populära och behovet av att använda pseudografi i dem försvann så småningom. Som ett resultat uppstod en hel grupp, som i huvudsak fortfarande var utökade versioner av Asuka (ett tecken av text är kodat med bara en byte information), men utan användning av pseudografiska tecken.

De tillhörde de så kallade ANSI-kodningarna, som utvecklades av American Standards Institute. I vanligt språkbruk användes även namnet kyrilliska för varianten med stöd för det ryska språket. Ett exempel på detta kan tjäna.

Det skilde sig positivt från de tidigare använda CP866 och KOI8-R genom att platsen för pseudografiska symboler i den togs av de saknade symbolerna i rysk typografi (bortsett från accentmärket), såväl som symboler som används på slaviska språk nära till Ryska (ukrainska, vitryska, etc.). ):

På grund av ett sådant överflöd av ryska språkkodningar hade teckensnittstillverkare och mjukvarutillverkare ständigt huvudvärk, och vi, kära läsare, fick ofta ut det mycket ökända krakozyabry när det fanns förvirring med den version som används i texten.

Mycket ofta kom de ut när de skickade och tog emot meddelanden via e-post, vilket ledde till skapandet av mycket komplexa omvandlingstabeller, som faktiskt inte kunde lösa detta problem i roten, och ofta använde användare för korrespondens för att undvika det ökända krakozyabrs när du använder ryska kodningar som CP866, KOI8-R eller Windows 1251.

Faktum är att krakozyabry som dök upp istället för den ryska texten var resultatet av felaktig användning av kodningen av detta språk, som inte motsvarade det som textmeddelandet ursprungligen kodades i.

Om du till exempel försöker visa tecknen som kodats med CP866 med hjälp av Windows 1251-kodtabellen, kommer samma krakozyabry (meningslösa teckenuppsättning) att komma ut och helt ersätta meddelandetexten.

En liknande situation uppstår mycket ofta med forum eller bloggar, när text med ryska tecken av misstag sparas i fel kodning som används på webbplatsen som standard, eller i fel textredigerare som lägger till gag till koden som inte är synlig för blotta ögat.

Till slut tröttnade många på en sådan situation med många kodningar och att ständigt komma ut krakozyabry, det fanns förutsättningar för att skapa en ny universell variant som skulle ersätta alla befintliga och slutligen lösa problemet med utseendet av oläsbara texter . Dessutom fanns det problemet med språk som kinesiska, där språkets tecken var mycket mer än 256.

Unicode (Unicode) - universella kodningar UTF 8, 16 och 32

Dessa tusentals tecken i den sydostasiatiska språkgruppen kunde inte på något sätt beskrivas i en byte med information, som tilldelades för att koda tecken i utökade versioner av ASCII. Som ett resultat ringde ett konsortium Unicode(Unicode - Unicode Consortium) i samarbete med många ledare inom IT-branschen (de som producerar mjukvara, som kodar hårdvara, som skapar typsnitt) som var intresserade av uppkomsten av en universell textkodning.

Den första varianten som släpptes under Unicode-konsortiets regi var UTF-32. Siffran i namnet på kodningen betyder antalet bitar som används för att koda ett tecken. 32 bitar är 4 byte med information som kommer att behövas för att koda ett enda tecken i den nya universella UTF:n för kodning.

Som ett resultat kommer samma fil med text, kodad i den utökade versionen av ASCII och i UTF-32, i det senare fallet att ha en storlek (vikt) fyra gånger större. Det här är dåligt, men nu har vi möjlighet att med UTF koda antalet tecken lika med två till trettio sekunders potens ( miljarder tecken, som kommer att täcka alla verkligt nödvändiga värden med en enorm marginal).

Men för många länder med språk i den europeiska gruppen fanns det inget behov av att använda ett så stort antal tecken i kodningen alls, men när de använde UTF-32 skulle de få en fyrfaldig ökning av textens vikt dokument för ingenting, och som ett resultat, en ökning av volymen internettrafik och volym lagrad data. Detta är mycket, och ingen hade råd med sådant avfall.

Som ett resultat av utvecklingen av Unicode, UTF-16, vilket visade sig vara så framgångsrikt att det accepterades som standardbasutrymme för alla tecken som vi använder. Den använder två byte för att koda ett tecken. Låt oss se hur den här saken ser ut.

I Windows-operativsystemet kan du gå längs vägen "Start" - "Program" - "Tillbehör" - "Verktyg" - "Teckentabell". Som ett resultat kommer en tabell med vektorformer för alla teckensnitt som är installerade i ditt system att öppnas. Om du väljer Unicode-teckenuppsättningen i "Avancerade alternativ" kan du se för varje teckensnitt individuellt hela intervallet av tecken som ingår i det.

Förresten, genom att klicka på någon av dem kan du se dess dubbelbyte kod i UTF-16-format, bestående av fyra hexadecimala siffror:

Hur många tecken kan kodas i UTF-16 med 16 bitar? 65536 (två i styrkan av sexton), och det var detta nummer som antogs som basutrymme i Unicode. Dessutom finns det sätt att koda med det cirka två miljoner tecken, men begränsat till ett utökat utrymme på en miljon tecken text.

Men även denna framgångsrika version av Unicode-kodningen gav inte mycket tillfredsställelse för dem som skrev till exempel program bara på engelska, för efter övergången från den utökade versionen av ASCII till UTF-16 fördubblades vikten av dokument (en byte per ett tecken i Asci och två byte per samma tecken i UTF-16).

Det var det för allas belåtenhet i Unicode-konsortiet, beslutade man att komma med kodning med variabel längd. Den heter UTF-8. Trots åtta i namnet har den verkligen en variabel längd, d.v.s. varje texttecken kan kodas till en sekvens på en till sex byte.

I praktiken, i UTF-8, används endast intervallet från en till fyra byte, för bakom fyra byte kod är ingenting ens teoretiskt möjligt att föreställa sig. Alla latinska tecken i den är kodade i en byte, precis som i den gamla goda ASCII.

Anmärkningsvärt, när det gäller kodning av endast latin, kommer även de program som inte förstår Unicode fortfarande att läsa det som är kodat i UTF-8. De där. basdelen av Asuka övergick helt enkelt till denna idé av Unicode Consortium.

Kyrilliska tecken i UTF-8 är kodade i två byte, och till exempel georgiska tecken i tre byte. Unicode-konsortiet, efter att ha skapat UTF 16 och 8, löste huvudproblemet - nu har vi teckensnitt har ett enda kodutrymme. Och nu kan deras tillverkare bara fylla den med vektorformer av texttecken baserat på deras styrkor och möjligheter. Nu även i set.

I "Teckentabellen" ovan kan du se att olika teckensnitt stöder olika antal tecken. Vissa Unicode-rika teckensnitt kan vara mycket stora. Men nu skiljer de sig inte genom att de skapades för olika kodningar, utan i det faktum att teckensnittstillverkaren fyllde eller inte fyllde det enda kodutrymmet med en eller annan vektorform till slutet.

Krakozyabry istället för ryska bokstäver - hur man fixar

Låt oss nu se hur krakozyabra visas istället för text, eller med andra ord hur den korrekta kodningen för rysk text väljs. Egentligen är det inställt i programmet där du skapar eller redigerar samma text, eller kod med hjälp av textfragment.

För att redigera och skapa textfiler använder jag personligen en mycket bra, enligt min mening, . Det kan dock lyfta fram syntaxen för ett drygt hundra fler programmerings- och märkningsspråk, och har även möjlighet att utökas med plugins. Läs en detaljerad recension av detta underbara program på länken nedan.

I toppmenyn i Notepad ++ finns ett objekt "Kodningar", där du kommer att ha möjlighet att konvertera ett befintligt alternativ till det som används på din webbplats som standard:

I fallet med en webbplats på Joomla 1.5 och högre, såväl som i fallet med en blogg på WordPress, för att undvika uppkomsten av buggar, välj alternativet UTF8 utan BOM. Vad är prefixet BOM?

Faktum är att när UTF-16-kodningen utvecklades, bestämde de sig av någon anledning för att fästa en sådan sak som möjligheten att skriva en teckenkod, både i direkt sekvens (till exempel 0A15) och omvänt (150A) . Och för att program ska förstå i vilken sekvens man ska läsa koderna uppfanns det BOM(Byte Order Mark eller, med andra ord, signatur), vilket uttrycktes i att ytterligare tre byte lades till i början av dokumenten.

I UTF-8-kodning tillhandahölls ingen BOM i Unicode-konsortiet, och därför att lägga till en signatur (dessa mest ökända ytterligare tre bytes i början av dokumentet) hindrar helt enkelt vissa program från att läsa koden. När vi sparar filer i UTF måste vi därför alltid välja alternativet utan BOM (utan signatur). Så du avancerar skydda dig från krypande krakozyabry.

Anmärkningsvärt är att vissa program i Windows inte vet hur man gör detta (de kan inte spara text i UTF-8 utan BOM), till exempel samma ökända Windows Notepad. Den sparar dokumentet i UTF-8, men lägger ändå till signaturen (tre extra byte) i början av det. Dessutom kommer dessa bytes alltid att vara desamma - läs koden i direkt följd. Men på servrarna, på grund av denna lilla sak, kan ett problem uppstå - krakozyabry kommer ut.

Därför på intet sätt använd inte vanliga Windows-anteckningar för att redigera dokument på din webbplats, om du inte vill ha utseendet på krakozyabrov. Jag anser att den redan nämnda Notepad ++-redigeraren är det bästa och enklaste alternativet, som praktiskt taget inte har några nackdelar och bara består av fördelar.

I Notepad++, när du väljer en kodning, kommer du att ha möjlighet att konvertera text till UCS-2-kodning, som till sin natur ligger mycket nära Unicode-standarden. Även i Notepad kommer det att vara möjligt att koda text i ANSI, d.v.s. i förhållande till det ryska språket kommer detta att vara Windows 1251, som vi redan har beskrivit lite ovan, Var kommer denna information ifrån?

Det är skrivet i registret för ditt Windows-operativsystem - vilken kodning du ska välja när det gäller ANSI, vilken du ska välja när det gäller OEM (för det ryska språket kommer det att vara CP866). Om du installerar ett annat standardspråk på din dator kommer dessa kodningar att ersättas med liknande från ANSI- eller OEM-kategorin för samma språk.

När du har sparat dokumentet i Notepad ++ i den kodning du behöver eller öppnat dokumentet från webbplatsen för redigering, kan du se dess namn i det nedre högra hörnet av redigeraren:

För att undvika krakozyabrov, förutom de åtgärder som beskrivs ovan, kommer det att vara användbart att skriva information om denna kodning i dess rubrik i källkoden på alla sidor på webbplatsen så att det inte uppstår någon förvirring på servern eller den lokala värden.

I allmänhet, i alla hypertextmarkeringsspråk utom HTML, används en speciell xml-deklaration, som anger textkodningen.

Innan koden analyseras vet webbläsaren vilken version som används och exakt hur teckenkoderna för det språket ska tolkas. Men vad är anmärkningsvärt, om du sparar dokumentet i standard unicode, då kan denna xml-deklaration utelämnas (kodningen kommer att betraktas som UTF-8 om det inte finns någon BOM eller UTF-16 om det finns en BOM).

I fallet med ett HTML-språkdokument används kodningen för att specificera Meta element, som skrivs mellan den inledande och avslutande Head-taggen:

... ...

Den här posten skiljer sig ganska mycket från den i , men den är helt kompatibel med den nya HTML 5-standarden som långsamt introduceras, och den kommer att förstås till 100 % korrekt av alla webbläsare som för närvarande används.

I teorin skulle Meta-elementet med HTML-kodningen av dokumentet vara bättre att lägga så högt som möjligt i dokumentets rubrik så att vid tidpunkten för mötet i texten för det första tecknet som inte kommer från bas-ANSI (som alltid kommer att läsas korrekt och i alla varianter), bör webbläsaren redan ha information om hur man tolkar koderna för dessa tecken.

Lycka till! Vi ses snart på bloggens sida

Du kanske är intresserad

Vad är en URL, vad är skillnaden mellan absoluta och relativa länkar för en webbplats
OpenServer - en modern lokal server och ett exempel på att använda den för att installera WordPress på en dator
Vad är Chmod, vilka behörigheter att tilldela filer och mappar (777, 755, 666) och hur man gör det via PHP
Yandex-sökning på webbplatsen och onlinebutiken

Senare ASCII utökades (till en början använde den inte alla 8 bitar), så det blev möjligt att använda inte 128, utan 256 (2 till 8) olika tecken som kan kodas i en byte med information.
Denna förbättring gjorde det möjligt att lägga till kodningen ASCII symboler för nationella språk i olika länder, förutom det redan befintliga latinska alfabetet.
Utökade kodningsalternativ ASCII det finns så många eftersom det finns så många språk i världen. Jag tror att många av er har hört talas om en sådan kodning som KOI8 (Information Interchange Code, 8 bitar) - det här är också en utökad kodning ASCII. KOI8 inkluderade siffror, bokstäver i det latinska och ryska alfabetet, såväl som skiljetecken, specialtecken och pseudografik.

ISO-kodning

International Standards Organization har skapat en rad kodningar för olika skript/språk.

ISO 8859-seriens kodningar

Kodning Beskrivning
ISO 8859-1 (Latin-1) Utökat latin, inklusive tecken från de flesta västeuropeiska språk (engelska, danska, irländska, isländska, spanska, italienska, tyska, norska, portugisiska, romanska, färöiska, svenska, skotska (gaeliska) och delar av holländska, finska, franska) , samt några östeuropeiska (albanska) och afrikanska språk (afrikaans, swahili). Latin-1 saknar eurotecknet och den stora bokstaven Ÿ. Denna teckentabell anses vara standardkodningen för HTML-dokument och e-postmeddelanden. Denna teckentabell motsvarar också de första 256 Unicode-tecknen.
ISO 8859-2 (Latin-2) Utökat latin, inklusive tecken från centraleuropeiska och östeuropeiska språk (bosniska, ungerska, polska, slovakiska, slovenska, kroatiska, tjeckiska). Latin-2, liksom Latin-1, saknar eurotecknet.
ISO 8859-3 (Latin-3) Utökat latin, inklusive tecken från sydeuropeiska språk (maltesiska, turkiska och esperanto).
ISO 8859-4 (Latin-4) Utökat latin, inklusive tecken från nordeuropeiska språk (grönländska, estniska, lettiska, litauiska och samiska).
ISO 8859-5 (latinsk/kyrillisk) Kyrilliska, inklusive symboler för slaviska språk (vitryska, bulgariska, makedonska, ryska, serbiska och delvis ukrainska).
ISO 8859-6 (latin/arabiska) Symboler som används på arabiska. Tecken från andra arabiskt baserade språk stöds inte. Korrekt visning av ISO 8859-6-text kräver stöd för dubbelriktad skrivning och sammanhangskänsliga teckenformer.
ISO 8859-7 (latin/grekiska) Symboler för det moderna grekiska språket. Det kan också användas för att skriva antika grekiska texter i monoton ortografi.
ISO 8859-8 (latin/hebreiska) Moderna hebreiska symboler. Används i två versioner: med logisk teckenordning (kräver dubbelriktat stöd) och med visuell teckenordning.
ISO 8859-9 (Latin-5) En latinsk-1-variant som ersätter sällan använda isländska tecken med turkiska. Används för turkiska och kurdiska.
ISO 8859-10 (Latin-6) Latin-4 variant, bekvämare för skandinaviska språk.
ISO 8859-11 (latin/thailändsk) Thailändska språksymboler.
ISO 8859-13 (Latin-7) Latin-4 variant, bekvämare för baltiska språk.
ISO 8859-14 (Latin-8) Utökat latin för att inkludera tecken från keltiska språk som skotska (gaeliska) och bretonska.
ISO 8859-15 (Latin-9) En Latin-1-variant som ersätter sällan använda tecken med de som behövs för att fullt ut stödja finska, franska och estniska. Dessutom lades eurotecknet till Latin-9.
ISO 8859-16 (Latin-10) Utökat latin, inklusive tecken från södra och östeuropeiska (albanska, ungerska, italienska, polska, rumänska, slovenska, kroatiska), såväl som några västeuropeiska språk (iriska i den nya ortografin, tyska, finska, franska). Liksom Latin-9 lades eurotecknet till Latin-10.

För dokument på engelska och de flesta andra västeuropeiska språk stöds kodning brett ISO-8859-1.

I HTML ISO-8859-1är standardkodningen (i XHTML och HTML5 är standardkodningen UTF-8).
När du använder en annan sidkodning än ISO-8859-1 måste du ange detta i taggen .

För HTML4:

För HTML5:

Ett exempel på en ANSI-kodning är den välkända Windows-1251.

Windows-1251 jämförs positivt med andra 8-bitars kyrilliska kodningar (som CP866 och ISO 8859-5) genom närvaron av nästan alla tecken som används i rysk typografi för vanlig text (endast accenten saknas). Den innehåller också alla tecken för andra slaviska språk: ukrainska, vitryska, serbiska, makedonska och bulgariska.
Följande är decimalvärdena för kodningstecknen Windows-1251.

För att visa tabelltecken i ett HTML-dokument, använd följande syntax:

& + kod + ;

Windows-1251-kodning (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20 AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F

A.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Yo
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407

b.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
yo
451

2116
є
454
»
BB
ј
458
Ѕ
405
ѕ
455
ї
457

C.
OCH
410
B
411

412
G
413
D
414
E
415
OCH
416
Z
417
Och
418
Y
419
Till
41A
L
41B
M
41C
H
41D
O
41E
P
41F

D.
R
420
FRÅN
421
T
422

423
F
424
X
425
C
426
H
427
W
428
SCH
429
Kommersant
42A
S
42B
b
42C
E
42D
YU
42E
JAG ÄR
42F

E.
a
430
b
431
i
432
G
433
d
434
e
435
och
436
h
437
och
438
th
439
till
43A
l
43B
m
43C
n
43D
handla om
43E
P
43F

F.
R
440
Med
441
t
442

443
f
444
X
445
c
446
h
447
w
448
sch
449
b
44A
s
44B
b
44C
eh
44D
Yu
44E
jag
44F

UNICODE-kodningar

Unicode (eng. Unicode) är en teckenkodningsstandard som låter dig representera tecknen i nästan alla skript i världen, och specialtecken. Tecken som representeras i Unicode är kodade som heltal utan tecken. Unicode har flera former för att representera tecken på en dator: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) och UTF-32 (UTF-32BE, UTF-32LE). (Engelska Unicode-transformationsformat - UTF).
UTF-8är en för närvarande vanlig kodning som har hittat bred tillämpning i operativsystem och webbutrymme. Text som består av Unicode-tecken mindre än 128 (kodområde U+0000 till U+007F) innehåller inställda tecken ASCII med motsvarande koder. Nästa är områden med tecken i olika skript, skiljetecken och tekniska symboler. Under kyrilliska tecken tilldelas teckenområden med koder från U + 0400 till U + 052F, från U + 2DE0 till U + 2DFF, från U + A640 till U + A69F.

Kodning UTF-8är universell och har en imponerande reserv för framtiden. Detta gör det till den mest bekväma kodningen för användning på webben.

Innan vi svarar på frågan om vad är ANSI Windows-kodning, låt oss först svara på en annan fråga: "Vad är en kodning i allmänhet?"

Varje dator, varje system använder en viss uppsättning tecken, beroende på vilket språk användaren använder, på hans professionella kompetens och personliga preferenser.

Allmän kodningsdefinition

Så på ryska används 33 tecken för att beteckna bokstäver, på engelska - 26. Dessutom används 10 siffror för att räkna (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) och några speciella tecken, minus, mellanslag, punkt, procent och så vidare.

Vart och ett av dessa tecken tilldelas ett serienummer med hjälp av kodtabellen. Till exempel kan bokstaven "A" tilldelas siffran 1; "Z" - 26 och så vidare.

I själva verket anses ett tal som representerar ett tecken som ett heltal som en teckenkod, och en kodning är en uppsättning tecken i en sådan tabell.

Riken i mångfalden av kodtabeller

För tillfället finns det ett ganska stort antal kodningar och kodtabeller som används av olika specialister: dessa är ASCII, utvecklad 1963 i Amerika, och Windows-1251, som nyligen var populär tack vare Microsoft, KOI8-R och Guobiao - och många, många andra, och processen med deras utseende och död fortsätter till denna dag.

Bland denna enorma lista sticker den så kallade ANSI-kodningen ut särskilt.

Faktum är att Microsoft vid ett tillfälle skapade en hel uppsättning teckentabeller:

Alla har fått det allmänna namnet på ANSI-kodningstabellen, eller ANSI-kodtabellen.

Ett intressant faktum: en av de första kodtabellerna var ASCII, skapad 1963 av American National Standards Institute (American National Standards Institute), förkortat ANSI.

Bland annat innehåller denna kodning även icke-utskrivbara tecken, de så kallade "Escape Sequences", eller ESC, unika för alla teckentabeller, ofta inkompatibla med varandra. Med skicklig användning tillät de dig dock att dölja och återställa markören, flytta den från en position i texten till en annan, ställa in flikar, radera en del av terminalfönstret där du arbetade, ändra formateringen av text på skärmen och ändra färg (eller till och med rita och servera ljudsignaler!). 1976 var detta förresten en ganska bra hjälp för programmerare. En terminal är förresten en enhet som krävs för inmatning och utmatning av information. I dessa avlägsna tider var det en bildskärm och ett tangentbord kopplat till en dator (elektronisk dator).

Felaktig visning av symboler

Tyvärr, i framtiden, orsakade ett sådant system många fel i systemen, visa den så kallade krakozyabry istället för önskade dikter, nyhetsflöden eller beskrivningar av dina favoritdataspel. - meningslösa, oläsbara teckenuppsättningar. Uppkomsten av dessa allestädes närvarande fel orsakades bara av ett försök att visa tecken kodade i en kodningstabell med en annan.

Oftast stöter vi fortfarande på konsekvenserna av att felaktigt läsa denna kodning på Internet, när vår webbläsare av någon anledning inte kan avgöra exakt vilken av Windows-****-kodningarna som används för närvarande, på grund av indikationen på webben - den allmänna ANSI-kodningsguiden eller en initialt felaktig kodning, till exempel 1252 istället för 1521. Nedan finns den exakta kodningstabellen.

Kyrillisk ANSI-kodningstabell, Windows-1251

Dessutom utökades ANSI avsevärt 1986, tack vare Ian E. Davies, som skrev paketet The Draw, som inte bara gör det möjligt att använda de grundläggande, från vår synvinkel, funktioner, utan också att rita helt (eller nästan helt) )!

Summering

Således kan det ses att ANSI-kodningen faktiskt, även om det var ett ganska kontroversiellt beslut, behåller sin position.

Med tiden, med entusiasternas lätta hand, migrerade den gamla ANSI-terminalen till och med till telefoner!

Nytt på plats

>

Mest populär