Fullständigt ascii-bord. Kodning av textinformation


En dator förstår processen att omvandla den till en form som möjliggör en mer bekväm överföring, lagring eller automatisk behandling av dessa data. Olika tabeller används för detta ändamål. ASCII-kodningär det första systemet som utvecklats i USA för att arbeta med engelsk text, som sedan fick stor spridning över hela världen. Dess beskrivning, funktioner, egenskaper och vidare användning Artikeln nedan ägnas åt detta.

Visning och lagring av information i en dator

Symboler på en datorskärm eller en eller annan mobil digital gadget bildas baserat på uppsättningar av vektorformer av olika tecken och en kod som gör att du bland dem kan hitta symbolen som måste infogas på rätt plats. Det representerar en sekvens av bitar. Således måste varje tecken unikt motsvara en uppsättning nollor och ettor, som visas i en viss, unik ordning.

Hur allt började

Historiskt sett var de första datorerna engelskspråkiga. För kodning symbolisk information i dem räckte det att använda endast 7 bitar av minne, medan 1 byte bestående av 8 bitar tilldelades för detta ändamål. Antalet tecken som datorn förstod i det här fallet var 128. Dessa tecken inkluderade det engelska alfabetet med dess skiljetecken, siffror och några specialtecken. Den engelskspråkiga sjubitarskodningen med motsvarande tabell (kodtabell), utvecklad 1963, kallades American Standard Code for Information Interchange. Vanligtvis användes och används fortfarande förkortningen "ASCII-kodning" för att beteckna den.

Övergång till flerspråkighet

Med tiden blev datorer allmänt använda i icke-engelsktalande länder. I detta avseende fanns det ett behov av kodningar som tillåter användning av nationella språk. Det beslutades att inte uppfinna hjulet på nytt och ta ASCII som grund. Kodningstabellen i den nya utgåvan har utökats avsevärt. Användningen av den 8:e biten gjorde det möjligt att översätta till datorspråk redan 256 tecken.

Beskrivning

ASCII-kodningen har en tabell som är uppdelad i 2 delar. Endast dess första halva anses vara en allmänt accepterad internationell standard. Det inkluderar:

  • Symboler med serie nummer från 0 till 31, kodade av sekvenser från 00000000 till 00011111. De är reserverade för kontrolltecken som styr processen att visa text på skärmen eller skrivaren, matning ljudsignal och så vidare.
  • Tecken med NN i tabellen från 32 till 127, kodade av sekvenser från 00100000 till 01111111 utgör standarddelen av tabellen. Dessa inkluderar mellanslag (N 32), bokstäver i det latinska alfabetet (gemener och versaler), tiosiffriga siffror från 0 till 9, skiljetecken, parenteser av olika stilar och andra symboler.
  • Tecken med serienummer från 128 till 255, kodade av sekvenser från 10000000 till 11111111. Dessa inkluderar bokstäver i andra nationella alfabet än latinska. Det är denna alternativa del av ASCII-tabellen som används för att konvertera ryska tecken till datorform.

Vissa fastigheter

Funktioner i ASCII-kodningen inkluderar skillnaden mellan bokstäverna "A" - "Z" i gemener och versaler med endast en bit. Denna omständighet förenklar registerkonverteringen avsevärt, samt att kontrollera om den tillhör ett givet värdeintervall. Dessutom representeras alla bokstäver i ASCII-kodningssystemet av sina egna sekvensnummer i alfabetet, som är skrivna med 5 siffror i binärt system Siffror som föregås av 011 2 för små bokstäver och 010 2 för stora bokstäver.

En av funktionerna i ASCII-kodningen är representationen av 10 siffror - "0" - "9". I det andra talsystemet börjar de med 00112 och slutar med två talvärden. Så 0101 2 är ekvivalent decimal nummer fem, så symbolen "5" skrivs som 0011 01012. Baserat på vad som har sagts kan du enkelt konvertera binära decimaltal till en ASCII-sträng genom att lägga till bitsekvensen 00112 till varje nibble till vänster.

"Unicode"

Som du vet krävs tusentals tecken för att visa texter på språken i den sydostasiatiska gruppen. Ett sådant antal av dem kan inte beskrivas på något sätt i en byte med information, så även utökade versioner av ASCII kunde inte längre tillfredsställa de ökade behoven hos användare från olika länder.

Således uppstod behovet av att skapa en universell textkodning, vars utveckling, i samarbete med många ledare inom den globala IT-branschen, genomfördes av Unicode-konsortiet. Dess specialister skapade UTF 32-systemet. I det tilldelades 32 bitar för att koda 1 tecken, vilket utgör 4 byte med information. Den största nackdelen var den kraftiga volymökningen erforderligt minne så mycket som 4 gånger, vilket innebar många problem.

Samtidigt, för de flesta länder med officiella språk som tillhör den indoeuropeiska gruppen, är antalet tecken lika med 2 32 mer än överdrivet.

Som ett resultat av ytterligare arbete av specialister från Unicode-konsortiet dök UTF-16-kodningen upp. Det blev alternativet för att konvertera symbolisk information som passade alla både vad gäller mängden minne som krävs och antalet kodade tecken. Det är därför UTF-16 antogs som standard och kräver att 2 byte reserveras för ett tecken.

Även denna ganska avancerade och framgångsrika version av Unicode hade vissa nackdelar, och efter övergången från den utökade versionen av ASCII till UTF-16 fördubblades vikten av dokumentet.

I detta avseende beslutades det att använda UTF-8 variabel längdkodning. I det här fallet kodas varje tecken i källtexten som en sekvens med längd från 1 till 6 byte.

Kontakta amerikansk standardkod för informationsutbyte

Alla latinska tecken i UTF-8 variabel längd kodas till 1 byte, som i ASCII-kodningssystemet.

En speciell egenskap hos YTF-8 är att när det gäller text på latin utan att använda andra tecken, kommer även program som inte förstår Unicode fortfarande att kunna läsa den. Med andra ord, den grundläggande delen av kodningen ASCII-text blir helt enkelt en del av en ny UTF med variabel längd. Kyrilliska tecken i YTF-8 upptar 2 byte, och till exempel georgiska tecken - 3 byte. Genom att skapa UTF-16 och 8 löstes huvudproblemet med att skapa ett enda kodutrymme i typsnitt. Sedan dess kan teckensnittstillverkare bara fylla tabellen med vektorformer av texttecken baserat på deras behov.

Beroende på operativsystem, prioriteras olika kodningar. För att kunna läsa och redigera texter som skrivits med en annan kodning används ryska textkonverteringsprogram. Vissa textredigerare innehåller inbyggda omkodare och låter dig läsa text oavsett kodning.

Nu vet du hur många tecken som finns i ASCII-kodningen och hur och varför den utvecklades. Självklart är Unicode-standarden idag mest utbredd i världen. Vi får dock inte glömma att det är baserat på ASCII, så bidraget från dess utvecklare till IT-området bör uppskattas.

För att kunna använda ASCII korrekt är det nödvändigt att utöka dina kunskaper inom detta område och om kodningsmöjligheter.

Vad det är?

ASCII är en kodningstabell med utskrivna tecken (se skärmbild nr 1) skrivna på ett datortangentbord för att överföra information och vissa koder. Med andra ord är alfabetet och decimalsiffrorna kodade till motsvarande symboler som representerar och bär den nödvändiga informationen.

ASCII utvecklades i Amerika, så standardteckenuppsättningen innehåller vanligtvis det engelska alfabetet med siffror, totalt cirka 128 tecken. Men då uppstår en rättvis fråga: vad ska man göra om kodning av det nationella alfabetet krävs?

Andra versioner av ASCII-tabellen har utvecklats för att lösa liknande problem. Till exempel, för språk med en utländsk struktur, togs bokstäverna i det engelska alfabetet antingen bort, eller ytterligare tecken lades till dem i form av ett nationellt alfabet. Således kan ASCII-kodningen innehålla ryska bokstäver för nationellt bruk (se skärmbild nr 2).

Var används ASCII-kodningssystemet?

Detta kodsystem är nödvändigt inte bara för att ringa textinformation på tangentbordet. Det används också i grafik. Till exempel i ASCII Art Maker-programmet grafiska bilder olika tillägg består av en rad ASCII-tecken (se skärmbild nr 3).


Vanligtvis, liknande program kan delas in i de som utför funktionen grafiska redaktörer, invertering av en bild till text och de som konverterar en bild till ASCII-grafik. Den välkända uttryckssymbolen (eller som den också kallas " leende mänskligt ansikte ") är också ett exempel på ett kodningstecken.

Denna kodningsmetod kan också användas när du skriver eller skapar ett HTML-dokument. Till exempel anger du en specifik och nödvändig uppsättning tecken, och när du tittar på själva sidan kommer symbolen som motsvarar denna kod att visas på skärmen.

Bland annat den här typen kodning är nödvändig när du skapar en flerspråkig webbplats, eftersom tecken som inte ingår i en viss nationell tabell måste ersättas med ASCII-koder. Om läsaren är direkt kopplad till informations- och kommunikationsteknik (IKT), kommer det att vara användbart för honom att bekanta sig med sådana system som:

  1. Bärbar teckenuppsättning;
  2. Kontrolltecken;
  3. EBCDIC;
  4. VISCII;
  5. YUSCII;
  6. Unicode;
  7. ASCII art;
  8. KOI-8.

ASCII-tabellegenskaper

Som alla systematiska program har ASCII sin egen karakteristiska egenskaper. Så till exempel konverteras decimaltalsystemet (siffror från 0 till 9) till det binära talsystemet (dvs varje decimalsiffra konverteras till binärt 288 = 1001000, respektive).

Bokstäverna i de övre och nedre kolumnerna skiljer sig bara lite från varandra, vilket avsevärt minskar komplexiteten för att kontrollera och redigera ärendet.

Med alla dessa egenskaper fungerar ASCII-kodning som åttabitar, även om det ursprungligen var tänkt att vara sjubitars.

Tillämpning av ASCII i Microsoft-program Kontor:

Om nödvändigt detta alternativ informationskodning kan användas i Microsoft Notepad och Microsoft Office Word. Inom dessa applikationer kan dokumentet sparas i ASCII-format, men i det här fallet kommer du inte att kunna använda vissa funktioner när du skriver text.

I synnerhet kommer fetstil och könsval inte att vara tillgängliga. i fetstil, eftersom kodning endast bevarar innebörden av den maskinskrivna informationen, och inte det allmänna utseendet och formen. Du kan lägga till sådana koder i ett dokument med hjälp av följande program:

  • Microsoft excel;
  • Microsoft FrontPage;
  • Microsoft InfoPath;
  • Microsoft OneNote;
  • Microsoft Outlook;
  • Microsoft powerpoint;
  • Microsoft Project.

Det är värt att tänka på att när du skriver ASCII-koden i dessa applikationer måste du hålla nere tangentbordstangent ALT.

Naturligtvis kräver alla nödvändiga koder en längre och mer detaljerad studie, men detta ligger utanför ramen för vår artikel idag. Jag hoppas att du tyckte det var riktigt användbart.

Vi ses!

Bra dålig

Enligt International Telecommunication Union använde tre och en halv miljard människor 2016 Internet med viss regelbundenhet. De flesta av dem tänker inte ens på det faktum att alla meddelanden de skickar via PC eller mobila prylar, såväl som texter som visas på alla typer av monitorer, är faktiskt kombinationer av 0 och 1. Denna representation av information kallas kodning. Det säkerställer och underlättar avsevärt dess lagring, bearbetning och överföring. 1963 utvecklades den amerikanska ASCII-kodningen, vilket är ämnet för denna artikel.

Presentera information på en dator

Ur alla elektroniska datorers synvinkel är text en uppsättning individuella tecken. Dessa inkluderar inte bara bokstäver, inklusive versaler, utan även skiljetecken och siffror. Dessutom används specialtecken "=", "&", "(" och mellanslag.

Den uppsättning tecken som utgör texten kallas alfabetet, och deras nummer kallas kardinalitet (betecknas som N). För att bestämma det används uttrycket N = 2^b, där b är antalet bitar eller informationsvikten för en viss symbol.

Det har bevisats att ett alfabet med en kapacitet på 256 tecken kan representera alla nödvändiga tecken.

Eftersom 256 representerar den åttonde potensen av två, är vikten av varje tecken 8 bitar.

En måttenhet på 8 bitar kallas 1 byte, så det är vanligt att säga att varje tecken i text som lagras på en dator tar upp en byte minne.

Hur går kodning till?

Eventuella texter läggs in i minnet personlig dator genom tangentbordstangenter på vilka siffror, bokstäver, skiljetecken och andra symboler är skrivna. I Bagge de sänds i binär kod, det vill säga varje tecken är associerat med en decimalkod som är bekant för människor, från 0 till 255, vilket motsvarar en binär kod - från 00000000 till 11111111.

Byte-byte teckenkodning gör att processorn som utför textbearbetning kan komma åt varje tecken individuellt. Samtidigt är 256 tecken tillräckligt för att representera all symbolisk information.

ASCII-teckenkodning

Denna förkortning på engelska står för kod för informationsutbyte.

Redan vid datoriseringens gryning blev det uppenbart att det var möjligt att komma på en mängd olika sätt att koda information. Men för att överföra information från en dator till en annan var det nödvändigt att utveckla en enhetlig standard. Så 1963 dök ASCII-kodningstabellen upp i USA. I den är vilken symbol som helst i datoralfabetet associerad med dess serienummer i binär representation. ASCII användes ursprungligen endast i USA och blev senare en internationell standard för datorer.

ASCII-koder är uppdelade i 2 delar. Endast den första halvan av denna tabell anses vara den internationella standarden. Den innehåller tecken med serienummer från 0 (kodad som 00000000) till 127 (kodad 01111111).

Serienummer

ASCII-textkodning

Symbol

0000 0000 - 0001 1111

Tecken med N från 0 till 31 kallas kontrolltecken. Deras funktion är att "hantera" processen att visa text på en bildskärm eller utskriftsenhet, ge en ljudsignal, etc.

0010 0000 - 0111 1111

Tecken med N från 32 till 127 (standarddelen av tabellen) - versaler och små bokstäver Latinskt alfabet, 10:e siffror, skiljetecken, samt olika parenteser, kommersiella och andra symboler. Tecknet 32 ​​representerar ett mellanslag.

1000 0000 - 1111 1111

Tecken med N från 128 till 255 (alternativ del av tabellen eller teckentabellen) kan ha olika varianter, som var och en har sitt eget nummer. Teckentabellen används för att ange nationella alfabet som skiljer sig från latinska. I synnerhet är det med dess hjälp som ASCII-kodning för ryska tecken utförs.

I tabellen är kodningarna versaler och följer varandra in alfabetisk ordning, och siffrorna är i stigande ordning. Denna princip förblir densamma för det ryska alfabetet.

Kontrolltecken

ASCII-kodningstabellen skapades ursprungligen för att ta emot och överföra information via en enhet som inte har använts på länge, till exempel en teletyp. I detta avseende inkluderades icke utskrivbara tecken i teckenuppsättningen, som användes som kommandon för att styra denna enhet. Liknande kommandon användes i sådana meddelandemetoder före dator som morsekod, etc.

Det vanligaste teletyptecknet är NUL (00). Det används fortfarande idag i de flesta programmeringsspråk för att indikera slutet på en rad.

Var används ASCII-kodning?

amerikansk standardkod behövs inte bara för att ange textinformation från tangentbordet. Det används också i grafik. Speciellt i ASCII Art Maker representerar bilderna av de olika tilläggen ett spektrum av ASCII-tecken.

Det finns två typer av sådana produkter: de som utför funktionen som grafiska redigerare genom att konvertera bilder till text och de som konverterar "ritningar" till ASCII-grafik. Till exempel är den berömda uttryckssymbolen ett utmärkt exempel på en kodningssymbol.

ASCII kan också användas när du skapar ett HTML-dokument. I det här fallet kan du ange en viss uppsättning tecken, och när du tittar på sidan kommer en symbol som motsvarar denna kod att visas på skärmen.

ASCII är också nödvändigt för att skapa flerspråkiga webbplatser, eftersom tecken som inte ingår i en specifik nationell tabell ersätts med ASCII-koder.

Vissa funktioner

ASCII användes ursprungligen för att koda textinformation med 7 bitar (en lämnades tom), men idag fungerar den som 8 bitar.

Bokstäverna som finns i kolumnerna ovanför och under skiljer sig från varandra på bara en enda bit. Detta minskar revisionens komplexitet avsevärt.

Använder ASCII i Microsoft Office

Vid behov kan denna typ av textinformationskodning användas i Microsofts textredigerare som Anteckningar och Office Word. Däremot kanske du inte kan använda vissa funktioner när du skriver i det här fallet. Du kommer till exempel inte att kunna använda fet text eftersom ASCII-kodning bara bevarar betydelsen av informationen och ignorerar dess övergripande utseende och form.

Standardisering

ISO-organisationen har antagit ISO 8859-standarder. Denna grupp definierar åttabitarskodningar för olika språkgrupper. Specifikt är ISO 8859-1 Extended ASCII, vilket är en tabell för USA och länder Västeuropa. Och ISO 8859-5 är en tabell som används för det kyrilliska alfabetet, inklusive det ryska språket.

Av ett antal historiska skäl användes standarden ISO 8859-5 under en mycket kort tid.

För ryska språket det här ögonblicket De faktiska kodningarna som används är:

  • CP866 (kod sida 866) eller DOS, som ofta kallas alternativ GOST-kodning. Det användes aktivt fram till mitten av 90-talet av förra seklet. För närvarande används den praktiskt taget inte.
  • KOI-8. Kodningen utvecklades på 1970- och 80-talen och är nu den allmänt accepterade standarden för e-postmeddelanden i Runet. Det används ofta i OS Unix familj, inklusive Linux. Den "ryska" versionen av KOI-8 kallas KOI-8R. Dessutom finns det versioner för andra Kyrilliska språk, till exempel ukrainska.
  • Kod Sida 1251 (CP 1251, Windows - 1251). Utvecklat av Microsoft för att ge stöd för det ryska språket i Windows-miljön.

Den största fördelen med den första CP866-standarden var bevarandet av pseudografiska tecken i samma positioner som i Extended ASCII. Detta gjorde att den kunde köras utan ändringar textprogram, utländsk produktion, såsom den berömda Norton Commander. För närvarande används CP866 för program utvecklade för Windows som körs i helskärmstextläge eller i textfönster, inklusive FAR Manager.

Datortexter skrivna med CP866-kodning, in Nyligen De är ganska sällsynta, men det är den som används för ryska filnamn i Windows.

"Unicode"

För närvarande är denna kodning den mest använda. Unicode-koder är indelade i områden. Den första (U+0000 till U+007F) innehåller ASCII-tecken med koder. Därefter följer teckenområdena för olika nationella manus, samt skiljetecken och tekniska symboler. Dessutom är vissa Unicode-koder reserverade ifall det skulle behövas nya tecken i framtiden.

Nu vet du att i ASCII representeras varje tecken som en kombination av 8 nollor och ettor. För icke-specialister kan denna information verka onödig och ointressant, men vill du inte veta vad som händer "i hjärnan" på din dator?!

Hej kära läsare av bloggsidan. Idag ska vi prata med dig om var krakozyabrs kommer ifrån på en webbplats 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 grundläggande ASCII, såväl som dess utökade versioner CP866, KOI8-R, Windows 1251 och slutar med moderna Unicode-konsortiumkodningar UTF 16 och 8.

För vissa kan denna information tyckas onödig, men skulle du veta hur många frågor jag får specifikt angående de krypande krakozyabrerna (oläsbar uppsättning tecken). Nu kommer jag att ha möjlighet att hänvisa alla till texten i denna artikel och hitta mina egna misstag. Nåväl, gör dig redo att ta till dig informationen och försök att följa berättelsens flöde.

ASCII - grundläggande textkodning för det latinska alfabetet

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 vanligtvis uttalas som "aski"). Den beskriver de första 128 tecknen som oftast används av engelsktalande användare - latinska bokstäver, arabiska siffror och skiljetecken.

Dessa 128 tecken som beskrivs i ASCII inkluderade också vissa tjänstecken som parenteser, hash-tecken, 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 vilken annan kodning som helst kommer du definitivt att hitta dem och de kommer att visas i denna ordning.

Men faktum är att med en byte information kan du koda inte 128, utan så många som 256 olika betydelser(två i makten av åtta är lika med 256), så följer grundläggande version En hel serie Asukas dök upp 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 nummersystem 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 tog det på ett institut eller en skola). , som var och en är en tvåa i potensen, med början från noll och upp till två till den sjunde:

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

I vårt exempel visar sig detta vara 1 (2 i potensen noll) plus 8 (två i potensen av 3), plus 32 (två till femte potensen), plus 64 (till den sjätte potensen), plus 128 (till sjunde potensen). Totalt får 233 in decimalsystem Beräkning. Som du kan se är allt väldigt enkelt.

Men om du tittar noga på tabellen med ASCII-tecken kommer du att se att de är representerade i hexadecimal kodning. Till exempel "asterisk" matchar i Aski hexadecimalt tal 2A. Det vet du säkert i hexadecimalt system Siffror används förutom arabiska siffror och latinska bokstäver från A (betyder tio) till F (betyder femton).

Jo då, för konvertera binärt tal till hexadecimalt ta till följande enkla och uppenbara 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 binär kod endast sexton värden kan kodas (två till fjärde potens), som enkelt kan representeras som ett hexadecimalt tal.

Dessutom, i den vänstra halvan av byten kommer graderna att behöva räknas igen 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 var tydlig för dig. Nåväl, låt oss nu fortsätta, faktiskt, 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 symboler för bokstäver i ditt språk till Aski.

Här kommer vi att behöva avvika igen för att förklara - varför behöver vi kodningar ö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 olika tecken (de finns i filer med ) och kod som låter dig dra ut från denna uppsättning vektorformer (teckensnittsfil ) exakt det tecken som måste infogas på rätt plats.

Det är tydligt att typsnitten själva är ansvariga för 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 detta textdokument. 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 sådana alternativ ett helt gäng. Bara för att koda ryska tecken finns det flera varianter av utökade Aska.

Till exempel dök ursprungligen upp CP866, som hade förmågan att använda tecken från det ryska alfabetet och var en utökad version av ASCII.

De där. henne övre del sammanföll helt med den grundläggande versionen av Aska (128 latinska tecken, siffror och annat skit), som presenteras i skärmdumpen precis ovan, men den nedre delen av tabellen med CP866-kodning hade formen som anges i skärmdumpen precis nedan och tillät dig för att koda ytterligare 128 tecken (ryska bokstäver och alla sorters pseudografik):

Du ser, i den högra kolumnen börjar siffrorna med 8, eftersom... siffror från 0 till 7 hänvisar till den grundläggande delen av ASCII (se 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 kolumn 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? Hela poängen är att denna kodning för rysk text utvecklades tillbaka under de lurviga åren när grafiska operativsystem inte var så utbredda som de är nu. Och i Dosa och liknande textoperativsystem gjorde pseudografin det möjligt att åtminstone på något sätt diversifiera utformningen av texter, och därför finns det gott om 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 text kodas av en enda byte. Skärmdumpen visar den andra halvan av KOI8-R-tabellen, eftersom den första halvan är helt förenlig med 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 de till exempel gjorde det i CP866.

Om du tittar på den allra första skärmdumpen (av den grundläggande delen, 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 motsvarande bokstäver i det latinska alfabetet 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 sprickorna kommer ut

Den fortsatta utvecklingen av textkodningar berodde på att grafiska operativsystem blev populära och behovet av att använda pseudografi i dem försvann med tiden. 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 symboler.

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 versionen med ryska språkstöd. Ett exempel på detta skulle vara.

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 (förutom 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, teckensnittstillverkare och tillverkare programvara huvudvärk uppstod ständigt, och du och jag, kära läsare, fick ofta samma ö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 innebar skapandet av mycket komplexa konverteringstabeller, som faktiskt inte kunde lösa detta problem i grunden, och användare använde ofta för korrespondens för att undvika de ökända jipponen när de använde Ryska kodningar som CP866, KOI8-R eller Windows 1251.

Faktum är att krakozyabrerna som förekom istället för den ryska texten var resultatet av felaktig användning av kodningen av detta språk, som inte matchade den som den kodades i textmeddelande initialt.

Till exempel, om du försöker visa tecken kodade med CP866 med koden Windows bord 1251, då kommer samma skratt (en meningslös uppsättning tecken) att komma ut och helt ersätta texten i meddelandet.

En liknande situation uppstår mycket ofta på 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 kodning textredigerare, som lägger till gags till koden som inte är synliga för blotta ögat.

Till slut tröttnade många på den här situationen med mycket kodningar och ständigt smygande skit, och förutsättningarna dök upp för skapandet av en ny universell variant som skulle ersätta alla befintliga och slutligen lösa problemet med utseendet av oläsliga texter. Dessutom fanns det problemet med språk som kinesiska, där det fanns mycket fler språktecken än 256.

Unicode - universella kodningar UTF 8, 16 och 32

Dessa tusentals tecken i den sydostasiatiska språkgruppen kunde omöjligt beskrivas i en byte med information som tilldelades för att koda tecken i utökade versioner av ASCII. Som ett resultat skapades ett konsortium kallat 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 överinseende var UTF 32. Siffran i kodningsnamnet betyder antalet bitar som används för att koda ett tecken. 32 bitar är lika med 4 byte information som kommer att behövas för att koda ett enda tecken i den nya universella UTF-kodningen.

Som ett resultat kommer samma fil med text kodad i den utökade versionen av ASCII och i UTF-32, i det senare fallet, ha en storlek (väga) fyra gånger större. Detta är dåligt, men nu har vi möjlighet att koda med hjälp av YTF ett antal tecken lika med två till trettio sekunders potens ( miljarder tecken, som kommer att täcka alla verkliga erforderligt värde med en kolossal reserv).

Men för många länder med språk i den europeiska gruppen detta stor mängd Det behövdes inte alls använda tecken i kodningen, men när UTF-32 användes skulle de aldrig ha fått en fyrfaldig viktökning textdokument, och som ett resultat, en ökning av volymen internettrafik och mängden lagrad data. Det här är mycket, och ingen hade råd med sådant avfall.

Som ett resultat av utvecklingen av Unicode, UTF-16, som visade sig vara så framgångsrik att den antogs som standard som basutrymme 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 operativsystem kan du följa sökvägen "Start" - "Program" - "Tillbehör" - "Systemverktyg" - "Teckentabell". Som ett resultat kommer en tabell att öppnas med vektorformerna för alla teckensnitt som är installerade på ditt system. Om du väljer Unicode-teckenuppsättningen i "Avancerade alternativ", kommer du att kunna se för varje teckensnitt separat hela intervallet av tecken som ingår i det.

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

Hur många tecken kan kodas i UTF-16 med 16 bitar? 65 536 (två i styrkan av sexton), och detta är numret som antogs som basutrymme i Unicode. Dessutom finns det sätt att koda cirka två miljoner tecken med den, men de var begränsade 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 i engelska språket, för efter övergången från den utökade versionen av ASCII till UTF-16 fördubblades vikten av dokument (en byte per tecken i Aski och två byte per samma tecken i UTF-16).

Det var just för att tillfredsställa allt och alla i Unicode-konsortiet som man beslutade att ta fram kodning med variabel längd. Den kallades UTF-8. Trots åtta i sitt namn har den faktiskt en variabel längd, d.v.s. Varje tecken i text kan kodas till en sekvens på en till sex byte lång.

I praktiken använder UTF-8 bara omfånget från en till fyra byte, eftersom bortom fyra byte kod är det inte längre ens teoretiskt möjligt att föreställa sig någonting. Alla latinska tecken i den är kodade till en byte, precis som i den gamla goda ASCII.

Vad som är anmärkningsvärt är att när det gäller kodning av endast det latinska alfabetet, kommer även de program som inte förstår Unicode fortfarande att läsa det som är kodat i YTF-8. De där. kärndelen av Asuka överfördes helt enkelt till denna skapelse av Unicode-konsortiet.

Kyrilliska tecken i UTF-8 är kodade i två byte, och till exempel georgiska tecken kodas 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 kommer de till och med i set.

I "Teckentabellen" ovan kan du se att olika teckensnitt stöder olika antal tecken. Vissa Unicode-rika teckensnitt kan vara ganska tunga. Men nu skiljer de sig inte i det de är skapade för olika kodningar, men genom att teckensnittstillverkaren antingen fyllde eller inte helt fyllde det enda kodutrymmet med vissa vektorformer.

Galna ord istället för ryska bokstäver - hur man fixar det

Låt oss nu se hur krakozyabrs 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 just denna text, eller kod med hjälp av textfragment.

För redigering och skapande textfiler Personligen använder jag en väldigt bra, enligt mig, . Det kan dock lyfta fram syntaxen för hundratals andra 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.

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

När det gäller en sida på Joomla 1.5 och högre, samt i fallet med en blogg på WordPress, bör du välja alternativet för att undvika uppkomsten av sprickor UTF 8 utan BOM. Vad är BOM-prefixet?

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

I UTF-8-kodningen tillhandahölls inga stycklistor i Unicode-konsortiet, och därför att lägga till en signatur (de där ökända extra 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 är i förväg skydda dig från krypande krakozyabrs.

Det som är anmärkningsvärt är att vissa program i Windows inte kan göra detta (de kan inte spara text i UTF-8 utan en 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å servrar, på grund av denna lilla sak, kan ett problem uppstå - skurkar kommer ut.

Därför under inga omständigheter använd inte vanligt Windows Anteckningar för att redigera dokument på din webbplats om du inte vill att några sprickor ska uppstå. Det bästa och det mesta enkelt alternativ Jag betraktar den redan nämnda Notepad++-redigeraren, som praktiskt taget inte har några nackdelar och bara består av fördelar.

I Notepad++, när du väljer en kodning, har du möjlighet att konvertera text till UCS-2-kodning, som till sin natur är 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 precis ovan Var kommer denna information ifrån?

Det är registrerat i ditt register operativ system Windows - vilken kodning att välja i fallet med ANSI, vilken att välja i fallet med OEM (för det ryska språket kommer det att vara CP866). Om du ställer in 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 rednecks, förutom de åtgärder som beskrivs ovan, kommer det att vara användbart att skriva i dess rubrik källkod alla sidor på webbplatsen information om just denna kodning, så att det inte uppstår någon förvirring på servern eller den lokala värden.

I allmänhet på alla språk hypertextmarkering Utöver HTML används en speciell xml-deklaration som anger textkodningen.

Innan koden analyseras vet webbläsaren vilken version som används och exakt hur den behöver tolka teckenkoderna för det språket. Men det som är anmärkningsvärt är att om du sparar dokumentet i standard Unicode 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).

När det gäller en handling HTML-språk används för att indikera kodning Meta element, som skrivs mellan inledande och avslutande Head-taggar:

... ...

Detta inlägg skiljer sig ganska mycket från det som antogs i, men överensstämmer helt med det nya som gradvis introduceras HTML-standard 5, och det kommer att förstås helt korrekt av alla som används på det här ögonblicket webbläsare.

I teorin ett Meta-element med en indikation HTML-kodningar det skulle vara bättre att lägga dokumentet så högt som möjligt i dokumenthuvudet så att vid tidpunkten för det första tecknet i texten som inte kommer från den grundläggande ANSI (som alltid läses 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å bloggsidans sidor

Du kan se fler videor genom att gå till
");">

Du kanske är intresserad

Vad har hänt URL-adresser Vad är skillnaden mellan absoluta och relativa länkar för en webbplats?
OpenServer - modern lokal server och ett exempel på dess användning för WordPress installationer på datorn
Vad är Chmod, vilka behörigheter att tilldela filer och mappar (777, 755, 666) och hur man gör det via PHP
Yandex sök efter webbplats och onlinebutik

Som du vet lagrar en dator information i binär form, som representerar den som en sekvens av ettor och nollor. För att översätta information till en form som är lämplig för mänsklig perception, ersätts varje unik nummersekvens med dess motsvarande symbol när den visas.

Ett av systemen för att korrelera binära koder med tryckta tecken och kontrolltecken är

På dagens utvecklingsnivå datateknik användaren behöver inte känna till koden för varje specifikt tecken. dock allmän förståelse hur kodning utförs är extremt användbart, och för vissa kategorier av specialister till och med nödvändigt.

Skapar ASCII

Kodningen utvecklades ursprungligen 1963 och uppdaterades sedan två gånger under loppet av 25 år.

I den ursprungliga versionen inkluderade ASCII-teckentabellen 128 tecken senare dök en utökad version upp, där de första 128 tecknen sparades, och tidigare saknade tecken tilldelades koder med den åttonde biten inblandad.

Under många år var denna kodning den mest populära i världen. 2006 tog Latin 1252 den ledande positionen, och från slutet av 2007 till idag har Unicode haft den ledande positionen.

Datorrepresentation av ASCII

Varje ASCII-tecken har sin egen kod, bestående av 8 tecken som representerar en nolla eller en etta. Minsta antalet i denna representation är noll (åtta nollor i det binära systemet), vilket är koden för det första elementet i tabellen.

Två koder i tabellen var reserverade för att växla mellan standard US-ASCII och dess nationella variant.

Efter att ASCII började inkludera inte 128 utan 256 tecken, blev en kodningsvariant utbredd, där den ursprungliga versionen av tabellen lagrades i de första 128 koderna med den 8:e biten noll. Nationella skrivtecken lagrades i den övre halvan av tabellen (positionerna 128-255).

Användaren behöver inte känna till ASCII-teckenkoderna direkt. En mjukvaruutvecklare behöver vanligtvis bara känna till elementnumret i tabellen för att vid behov beräkna dess kod med hjälp av det binära systemet.

ryska språket

Efter utvecklingen i början av 70-talet av kodningar för de skandinaviska språken, kinesiska, koreanska, grekiska, etc., skapades egen version Sovjetunionen engagerade sig också. Snart utvecklades en version av en 8-bitars kodning kallad KOI8, som bevarade de första 128 ASCII-teckenkoderna och tilldelade samma antal positioner för bokstäver i det nationella alfabetet och ytterligare tecken.

Innan Unicode introducerades dominerade KOI8 det ryska segmentet av Internet. Det fanns kodningsalternativ för både det ryska och ukrainska alfabetet.

ASCII-problem

Eftersom antalet element även i den utökade tabellen inte översteg 256 fanns det ingen möjlighet att rymma flera olika skript i en kodning. På 90-talet dök problemet med "crocozyabr" upp på Runet, när texter skrivna med ryska ASCII-tecken visades felaktigt.

Problemet var en kodfel olika alternativ ASCII till varandra. Låt oss komma ihåg att olika tecken kan placeras i positionerna 128-255, och när du ändrade en kyrillisk kodning till en annan, ersattes alla bokstäver i texten med andra som hade ett identiskt nummer i en annan version av kodningen.

Nuvarande tillstånd

Med tillkomsten av Unicode började populariteten för ASCII att minska kraftigt.

Anledningen till detta ligger i att den nya kodningen gjorde det möjligt att rymma tecken från nästan alla skriftspråk. I det här fallet motsvarar de första 128 ASCII-tecknen samma tecken i Unicode.

År 2000 var ASCII den mest populära kodningen på Internet och användes på 60 % av webbsidorna som indexerades av Google. År 2012 hade andelen sådana sidor sjunkit till 17 %, och Unicode (UTF-8) tog platsen för den mest populära kodningen.

Så ASCII är viktig del informationsteknologins historia, men dess användning i framtiden verkar inte lovande.







2024 gtavrl.ru.