Kods 39 pilns ASCII rakstzīmju komplekts. Teksta informācijas kodēšana

Sveiki, dārgie emuāra vietnes lasītāji. Šodien mēs ar jums runāsim par to, no kurienes vietnē un programmās nāk krakozyabrs, kādi teksta kodējumi pastāv un kuri no tiem būtu jāizmanto. Ieskatīsimies tuvāk to izstrādes vēsturē, sākot no pamata ASCII, kā arī tā paplašinātajām versijām CP866, KOI8-R, Windows 1251 un beidzot ar modernajiem Unicode Consortium kodējumiem UTF 16 un 8.

Dažiem šī informācija var šķist nevajadzīga, bet vai jūs zināt, cik daudz jautājumu es saņemu tieši par rāpojošo krakozyabrs (nesalasāmu rakstzīmju kopu). Tagad man būs iespēja visiem atsaukties uz šī raksta tekstu un atrast savas kļūdas. Nu, sagatavojieties uzņemt informāciju un mēģiniet sekot stāsta gaitai.

ASCII - pamata teksta kodējums latīņu alfabētam

Teksta kodējumu attīstība notika vienlaikus ar IT nozares veidošanos, un šajā laikā tajās izdevās piedzīvot diezgan daudz izmaiņu. Vēsturiski viss sākās ar EBCDIC, kas bija diezgan disonējoša krievu izrunā, kas ļāva kodēt latīņu alfabēta burtus, arābu ciparus un pieturzīmes ar vadības rakstzīmēm.

Bet tomēr mūsdienu teksta kodējumu izstrādes sākumpunkts ir jāuzskata par slaveno ASCII(Amerikas standarta informācijas apmaiņas kods, ko krievu valodā parasti izrunā kā “aski”). Tajā aprakstītas pirmās 128 rakstzīmes, ko visbiežāk izmanto angliski runājošie lietotāji — latīņu burti, arābu cipari un pieturzīmes.

Šīs 128 rakstzīmes, kas aprakstītas ASCII, ietvēra arī dažas pakalpojumu rakstzīmes, piemēram, iekavas, jaucējzīmes, zvaigznītes utt. Patiesībā jūs varat tos redzēt pats:

Šīs 128 rakstzīmes no sākotnējās ASCII versijas ir kļuvušas par standartu, un jebkurā citā kodējumā jūs tās noteikti atradīsit, un tās parādīsies šādā secībā.

Bet fakts ir tāds, ka ar vienu informācijas baitu jūs varat iekodēt nevis 128, bet pat 256 dažādas vērtības (divas ar astoņu pakāpju ir vienādas ar 256), tāpēc pēc Asuka pamata versijas vesela virkne paplašināti ASCII kodējumi, kurā bez 128 pamata rakstzīmēm bija iespējams iekodēt arī nacionālā kodējuma (piemēram, krievu) simbolus.

Šeit, iespējams, ir vērts pastāstīt nedaudz vairāk par skaitļu sistēmām, kas tiek izmantotas aprakstā. Pirmkārt, kā jūs visi zināt, dators darbojas tikai ar skaitļiem binārajā sistēmā, proti, ar nullēm un vieniniekiem (“Būla algebra”, ja kāds to apguva institūtā vai skolā). , katrs no tiem ir divi pakāpē, sākot no nulles, un līdz diviem līdz septītajam:

Nav grūti saprast, ka visas iespējamās nulles un vieninieku kombinācijas šādā dizainā var būt tikai 256. Skaitļa pārvēršana no binārās sistēmas decimālajā sistēmā ir pavisam vienkārša. Jums vienkārši jāsaskaita visas divu pilnvaras ar vienu virs tām.

Mūsu piemērā tas izrādās 1 (2 līdz nulles pakāpei) plus 8 (divi līdz 3 pakāpei), plus 32 (divi līdz piektajai pakāpei), plus 64 (līdz sestajai pakāpei), plus 128 (līdz septītajai pakāpei). Kopā ir 233 decimāldaļās. Kā redzat, viss ir ļoti vienkārši.

Bet, ja jūs rūpīgi aplūkojat tabulu ar ASCII rakstzīmēm, jūs redzēsit, ka tās ir attēlotas heksadecimālajā kodējumā. Piemēram, "zvaigznīte" atbilst heksadecimālajam skaitlim 2A valodā Aski. Jūs droši vien zināt, ka heksadecimālajā skaitļu sistēmā papildus arābu cipariem tiek izmantoti arī latīņu burti no A (nozīmē desmit) līdz F (nozīmē piecpadsmit).

Nu tad priekš bināro skaitļu pārvēršana heksadecimālā izmantojiet šādu vienkāršu un acīmredzamu metodi. Katrs informācijas baits ir sadalīts divās daļās pa četriem bitiem, kā parādīts iepriekš redzamajā ekrānuzņēmumā. Tas. Katrā pusbaitā bināri var kodēt tikai sešpadsmit vērtības (no divām līdz ceturtajai pakāpei), ko var viegli attēlot kā heksadecimālu skaitli.

Turklāt baita kreisajā pusē grādi būs jāskaita vēlreiz, sākot no nulles, nevis kā parādīts ekrānuzņēmumā. Rezultātā, veicot vienkāršus aprēķinus, mēs iegūstam, ka ekrānuzņēmumā ir kodēts skaitlis E9. Es ceru, ka mana argumentācijas gaita un šīs mīklas risinājums jums bija skaidrs. Nu, tagad faktiski turpināsim runāt par teksta kodējumu.

Asuka paplašinātās versijas - CP866 un KOI8-R kodējumi ar pseidogrāfiju

Tātad, mēs sākām runāt par ASCII, kas it kā bija sākumpunkts visu mūsdienu kodējumu izstrādei (Windows 1251, Unicode, UTF 8).

Sākotnēji tajā bija tikai 128 latīņu alfabēta rakstzīmes, arābu cipari un kaut kas cits, taču paplašinātajā versijā kļuva iespējams izmantot visas 256 vērtības, kuras var iekodēt vienā informācijas baitā. Tie. Kļuva iespēja Aski pievienot savas valodas burtu simbolus.

Šeit mums atkal būs jāatkāpjas, lai paskaidrotu - kāpēc mums vispār ir vajadzīgi kodējumi? tekstus un kāpēc tas ir tik svarīgi. Datora ekrāna rakstzīmes tiek veidotas, pamatojoties uz divām lietām - dažādu rakstzīmju vektoru formu (attēlu) kopām (tās atrodas failos ar ) un kodu, kas ļauj izvilkt no šīs vektoru formu kopas (fonta fails). ) tieši tā rakstzīme, kas jāievieto pareizajā vietā.

Skaidrs, ka par vektoru formām atbild paši fonti, bet par kodējumu atbild operētājsistēma un tajā izmantotās programmas. Tie. jebkurš teksts jūsu datorā būs baitu kopa, no kuriem katrs kodē vienu šī teksta rakstzīmi.

Programma, kas parāda šo tekstu ekrānā (teksta redaktors, pārlūkprogramma utt.), parsējot kodu, nolasa nākamās rakstzīmes kodējumu un meklē atbilstošo vektora formu vajadzīgajā fonta failā, kas ir savienots, lai parādītu šo teksta dokuments. Viss ir vienkārši un banāli.

Tas nozīmē, ka, lai iekodētu jebkuru mums nepieciešamo rakstzīmi (piemēram, no nacionālā alfabēta), ir jāievēro divi nosacījumi - šīs rakstzīmes vektora formai jābūt izmantotajā fontā un šī rakstzīme var tikt kodēta paplašinātos ASCII kodējumos viens baits. Tāpēc šādu iespēju ir vesela virkne. Tikai krievu valodas rakstzīmju kodēšanai ir vairākas paplašinātās Aska šķirnes.

Piemēram, sākotnēji parādījās CP866, kurā bija iespēja izmantot krievu alfabēta rakstzīmes un bija paplašināta ASCII versija.

Tie. tās augšējā daļa pilnībā sakrita ar Aska pamatversiju (128 latīņu rakstzīmes, cipari un citas stulbības), kas ir parādīta ekrānuzņēmumā tieši augšā, bet tabulas apakšējā daļa ar CP866 kodējumu bija tāda, kā norādīts ekrānuzņēmumā tieši zemāk. un ļāva iekodēt vēl 128 zīmes (krievu burtus un visādas pseidogrāfijas):

Redziet, labajā kolonnā skaitļi sākas ar 8, jo... skaitļi no 0 līdz 7 attiecas uz ASCII pamata daļu (skatiet pirmo ekrānuzņēmumu). Tas. Krievu burtam "M" CP866 būs kods 9C (tas atrodas atbilstošās rindas ar 9 un kolonnas ar ciparu C krustpunktā heksadecimālajā skaitļu sistēmā), ko var ierakstīt vienā informācijas baitā, un ja ir piemērots fonts ar krievu rakstzīmēm, šis burts bez problēmām parādīsies tekstā.

No kurienes radās šī summa? pseidogrāfija CP866? Būtība ir tāda, ka šis krievu teksta kodējums tika izstrādāts tajos pinkainajos gados, kad grafiskās operētājsistēmas nebija tik plaši izplatītas kā tagad. Un Dosa un līdzīgās teksta operētājsistēmās pseidogrāfija ļāva vismaz kaut kā dažādot tekstu noformējumu, un tāpēc CP866 un visi citi tā līdzīgie no Asuka paplašināto versiju kategorijas tajā ir ļoti daudz.

CP866 izplatīja IBM, taču papildus tam tika izstrādāti vairāki kodējumi krievu valodas rakstzīmēm, piemēram, var attiecināt to pašu veidu (paplašinātu ASCII). KOI8-R:

Tās darbības princips paliek tāds pats kā nedaudz iepriekš aprakstītajam CP866 - katra teksta rakstzīme tiek kodēta ar vienu baitu. Ekrānuzņēmumā redzama KOI8-R tabulas otrā puse, jo pirmā puse pilnībā atbilst pamata Asuka, kas ir parādīta šī raksta pirmajā ekrānuzņēmumā.

Starp KOI8-R kodējuma iezīmēm var atzīmēt, ka krievu burti tās tabulā nav alfabēta secībā, kā, piemēram, viņi to darīja CP866.

Ja paskatās uz pašu pirmo ekrānuzņēmumu (pamatdaļas, kas ir iekļauta visos paplašinātajos kodējumos), jūs pamanīsit, ka KOI8-R krievu burti atrodas tajās pašās tabulas šūnās, kur atbilst latīņu alfabēta burti. no tabulas pirmās daļas. Tas tika darīts, lai ērtāk pārslēgtos no krievu valodas uz latīņu rakstzīmēm, atmetot tikai vienu bitu (divus uz septīto pakāpi jeb 128).

Windows 1251 - modernā ASCII versija un kāpēc rodas plaisas

Teksta kodējumu tālākā attīstība bija saistīta ar to, ka grafiskās operētājsistēmas kļuva arvien populārākas un ar laiku pazuda nepieciešamība tajās izmantot pseidogrāfiju. Rezultātā radās vesela grupa, kas būtībā joprojām bija Asuka paplašinātās versijas (viena teksta rakstzīme ir kodēta tikai ar vienu informācijas baitu), bet bez pseidogrāfisko simbolu izmantošanas.

Tie piederēja tā sauktajiem ANSI kodējumiem, kurus izstrādāja Amerikas standartu institūts. Parastā valodā nosaukums kirilica tika izmantots arī versijai ar krievu valodas atbalstu. Piemērs tam būtu.

Tas labvēlīgi atšķīrās no iepriekš izmantotajiem CP866 un KOI8-R ar to, ka tajā pseidogrāfisko simbolu vietu ieņēma trūkstošie krievu tipogrāfijas simboli (izņemot akcenta zīmi), kā arī simboli, kas lietoti slāvu valodās, kas ir tuvas. Krievu (ukraiņu, baltkrievu utt.):

Sakarā ar tik daudz krievu valodas kodējumu fontu ražotājiem un programmatūras ražotājiem pastāvīgi bija galvassāpes, un jūs un es, dārgie lasītāji, bieži ieguvām to pašu bēdīgi slaveno. krakozyabry kad radās neskaidrības ar tekstā izmantoto versiju.

Ļoti bieži tie parādījās, sūtot un saņemot ziņojumus pa e-pastu, kas ietvēra ļoti sarežģītu konvertēšanas tabulu izveidi, kas faktiski nevarēja atrisināt šo problēmu principiāli, un lietotāji bieži izmantoja saraksti, lai izvairītos no bēdīgi slaveniem trikiem, izmantojot Krievu kodējumi, piemēram, CP866, KOI8-R vai Windows 1251.

Faktiski plaisas, kas parādījās krievu valodas teksta vietā, radās nepareizas šīs valodas kodējuma lietošanas rezultātā, kas neatbilda tai, kurā īsziņa sākotnēji tika kodēta.

Pieņemsim, ka, ja mēģināsit parādīt rakstzīmes, kas kodētas, izmantojot CP866, izmantojot Windows 1251 kodu tabulu, tad iznāks tās pašas muļķības (bezjēdzīga rakstzīmju kopa), pilnībā aizstājot ziņojuma tekstu.

Līdzīga situācija ļoti bieži rodas forumos vai emuāros, kad teksts ar krievu rakstzīmēm kļūdaini tiek saglabāts nepareizā kodējumā, kas tiek izmantots vietnē pēc noklusējuma, vai nepareizā teksta redaktorā, kas kodam pievieno gagus, kas nav redzami neapbruņotu aci.

Galu galā daudziem apnika šī situācija ar daudzajiem kodējumiem un nemitīgi ložņājošiem stulbiem, un parādījās priekšnoteikumi jaunas universālas variācijas izveidei, kas aizstātu visas esošās un beidzot atrisinātu problēmu ar izskatu. no nelasāmiem tekstiem. Turklāt radās problēma ar tādām valodām kā ķīniešu valoda, kur bija daudz vairāk valodas rakstzīmju nekā 256.

Unicode - universālie kodējumi UTF 8, 16 un 32

Šos tūkstošiem Dienvidaustrumāzijas valodu grupas rakstzīmju nav iespējams aprakstīt vienā informācijas baitā, kas tika piešķirts rakstzīmju kodēšanai ASCII paplašinātajās versijās. Rezultātā tika izveidots konsorcijs ar nosaukumu Unicode(Unicode - Unicode Consortium), sadarbojoties daudziem IT nozares līderiem (tiem, kas ražo programmatūru, kas kodē aparatūru, kas veido fontus), kuri bija ieinteresēti universāla teksta kodējuma rašanās.

Pirmā variācija, kas tika izlaista Unicode konsorcija aizgādībā, bija UTF 32. Skaitlis kodējuma nosaukumā nozīmē bitu skaitu, kas tiek izmantots vienas rakstzīmes kodēšanai. 32 biti ir vienādi ar 4 baitiem informācijas, kas būs nepieciešama vienas rakstzīmes kodēšanai jaunajā universālajā UTF kodējumā.

Rezultātā vienam un tam pašam failam ar tekstu, kas kodēts paplašinātajā ASCII versijā un UTF-32, pēdējā gadījumā būs četras reizes lielāks izmērs (svērums). Tas ir slikti, bet tagad mums ir iespēja, izmantojot YTF, kodēt rakstzīmju skaitu, kas vienāds ar diviem līdz trīsdesmit sekunžu pakāpei ( miljardiem rakstzīmju, kas segs jebkuru patiešām nepieciešamo vērtību ar milzīgu rezervi).

Bet daudzām valstīm ar Eiropas grupas valodām vispār nebija nepieciešams izmantot tik milzīgu rakstzīmju skaitu kodēšanā, tomēr, izmantojot UTF-32, tās bez iemesla saņēma četrkārtīgu teksta dokumentu svara pieaugumu, un rezultātā interneta trafika un uzglabāto datu apjoma pieaugums. Tas ir daudz, un neviens nevarēja atļauties šādus atkritumus.

Unikoda izstrādes rezultātā UTF-16, kas izrādījās tik veiksmīgs, ka pēc noklusējuma tika pieņemts kā pamatvieta visām mūsu izmantotajām rakstzīmēm. Tas izmanto divus baitus, lai kodētu vienu rakstzīmi. Apskatīsim, kā šī lieta izskatās.

Operētājsistēmā Windows varat sekot ceļam "Sākt" - "Programmas" - "Piederumi" - "Sistēmas rīki" - "Rakstzīmju tabula". Rezultātā tiks atvērta tabula ar visu jūsu sistēmā instalēto fontu vektoru formām. Ja sadaļā “Papildu opcijas” atlasīsit Unikoda rakstzīmju kopu, katram fontam atsevišķi varēsiet redzēt visu tajā iekļauto rakstzīmju klāstu.

Starp citu, noklikšķinot uz jebkura no tiem, jūs varat redzēt tā divus baitus kods UTF-16 formātā, kas sastāv no četriem heksadecimālajiem cipariem:

Cik rakstzīmju var kodēt UTF-16, izmantojot 16 bitus? 65 536 (divi līdz sešpadsmit), un tas ir skaitlis, kas tika pieņemts kā Unicode bāzes vieta. Turklāt ir veidi, kā, izmantojot to, kodēt aptuveni divus miljonus rakstzīmju, taču tie bija ierobežoti līdz miljona rakstzīmju tekstam.

Bet pat šī veiksmīgā Unicode kodējuma versija nesagādāja lielu gandarījumu tiem, kuri rakstīja, teiksim, programmas tikai angļu valodā, jo viņiem pēc pārejas no paplašinātās ASCII versijas uz UTF-16 dokumentu svars dubultojās ( viens baits uz katru rakstzīmi Aski un divi baiti vienai rakstzīmei YUTF-16).

Tieši tāpēc, lai apmierinātu visus un visu Unicode konsorcijā, tika nolemts nākt klajā mainīga garuma kodējums. To sauca par UTF-8. Neskatoties uz astoņiem tā nosaukumā, tam faktiski ir mainīgs garums, t.i. Katru teksta rakstzīmi var iekodēt secībā no viena līdz sešiem baitiem.

Praksē UTF-8 izmanto tikai diapazonu no viena līdz četriem baitiem, jo ​​tālāk par četriem koda baitiem vairs pat teorētiski neko nav iespējams iedomāties. Visas latīņu rakstzīmes tajā ir iekodētas vienā baitā, tāpat kā vecajā labajā ASCII.

Ievērības cienīgs ir tas, ka, ja tiek kodēts tikai latīņu alfabēts, pat tās programmas, kuras nesaprot Unicode, joprojām nolasīs YTF-8 kodēto. Tie. Asuka galvenā daļa tika vienkārši pārcelta uz šo Unicode konsorcija izveidi.

Kirilicas rakstzīmes UTF-8 ir kodētas divos baitos, un, piemēram, gruzīnu rakstzīmes ir kodētas trīs baitos. Unikoda konsorcijs pēc UTF 16 un 8 izveidošanas atrisināja galveno problēmu - tagad mums ir fontiem ir viena koda vieta. Un tagad to ražotāji to var aizpildīt tikai ar teksta rakstzīmju vektoru formām, pamatojoties uz viņu stiprajām pusēm un iespējām. Tagad tie ir pat komplekti.

Iepriekš redzamajā “Rakstzīmju tabulā” varat redzēt, ka dažādi fonti atbalsta dažādu rakstzīmju skaitu. Daži ar Unicode bagātināti fonti var būt diezgan smagi. Taču tagad tie atšķiras nevis ar to, ka radīti dažādiem kodējumiem, bet gan ar to, ka fontu ražotājs ir vai nav pilnībā aizpildījis vienotā koda telpu ar noteiktām vektoru formām.

Traki vārdi krievu burtu vietā - kā to labot

Tagad redzēsim, kā teksta vietā parādās krakozyabrs vai, citiem vārdiem sakot, kā tiek izvēlēts pareizais krievu valodas teksta kodējums. Faktiski tas ir iestatīts programmā, kurā veidojat vai rediģējat tieši šo tekstu vai kodu, izmantojot teksta fragmentus.

Lai rediģētu un izveidotu teksta failus, es personīgi izmantoju ļoti labu, manuprāt, . Tomēr tas var izcelt simtiem citu programmēšanas un iezīmēšanas valodu sintaksi, kā arī to var paplašināt, izmantojot spraudņus. Izlasiet detalizētu pārskatu par šo brīnišķīgo programmu norādītajā saitē.

Notepad++ augšējā izvēlnē ir vienums “Kodējumi”, kurā jums būs iespēja pārveidot esošo opciju uz to, kas jūsu vietnē tiek izmantota pēc noklusējuma:

Vietnei, kurā darbojas Joomla 1.5 un jaunāka versija, kā arī emuāra gadījumā, izmantojot WordPress, ir jāizvēlas opcija, lai izvairītos no plaisu parādīšanās. UTF 8 bez BOM. Kas ir MK prefikss?

Fakts ir tāds, ka, izstrādājot YUTF-16 kodējumu, viņi kaut kādu iemeslu dēļ nolēma tam pievienot tādu lietu kā iespēju rakstīt rakstzīmju kodu gan tiešā secībā (piemēram, 0A15), gan apgrieztā secībā (150A). . Un, lai programmas precīzi saprastu, kādā secībā nolasīt kodus, tas tika izgudrots BOM(Baitu pasūtījuma atzīme jeb, citiem vārdiem sakot, paraksts), kas izpaudās, pievienojot trīs papildu baitus pašā dokumentu sākumā.

UTF-8 kodējumā Unicode konsorcijā netika nodrošināti MK, un tāpēc paraksta pievienošana (tie bēdīgi slavenie papildu trīs baiti dokumenta sākumā) vienkārši neļauj dažām programmām nolasīt kodu. Tāpēc, saglabājot failus UTF, mums vienmēr ir jāizvēlas opcija bez BOM (bez paraksta). Tātad jūs esat iepriekš pasargāt sevi no rāpošanas krakozyabrs.

Jāatzīmē, ka dažas Windows programmas to nevar izdarīt (tās nevar saglabāt tekstu UTF-8 bez MK), piemēram, tas pats bēdīgi slavenais Windows Notepad. Tas saglabā dokumentu UTF-8, bet joprojām pievieno parakstu (trīs papildu baiti) tā sākumam. Turklāt šie baiti vienmēr būs vienādi - lasiet kodu tiešā secībā. Bet serveros šī sīkuma dēļ var rasties problēma - iznāks blēži.

Tāpēc nekādā gadījumā Neizmantojiet parasto Windows piezīmju grāmatiņu lai rediģētu dokumentus savā vietnē, ja nevēlaties, lai parādās plaisas. Par labāko un vienkāršāko variantu uzskatu jau pieminēto Notepad++ redaktoru, kuram praktiski nav nekādu trūkumu un sastāv tikai no priekšrocībām.

Programmā Notepad++, atlasot kodējumu, jums būs iespēja konvertēt tekstu uz UCS-2 kodējumu, kas pēc būtības ir ļoti tuvs Unicode standartam. Arī Notepad būs iespējams tekstu kodēt ANSI, t.i. attiecībā uz krievu valodu tā būs Windows 1251, kuru mēs jau aprakstījām tieši iepriekš. No kurienes šī informācija nāk?

Tas ir reģistrēts jūsu Windows operētājsistēmas reģistrā - kuru kodējumu izvēlēties ANSI gadījumā, kuru izvēlēties OEM gadījumā (krievu valodai tas būs CP866). Ja savā datorā iestatīsit citu noklusējuma valodu, šie kodējumi tiks aizstāti ar līdzīgiem kodinājumiem no ANSI vai OEM kategorijas tai pašai valodai.

Kad esat saglabājis dokumentu programmā Notepad++ vajadzīgajā kodējumā vai atverot dokumentu no vietnes rediģēšanai, redaktora apakšējā labajā stūrī varat redzēt tā nosaukumu:

Lai izvairītos no apsārtuma Papildus iepriekš aprakstītajām darbībām būs noderīgi visu vietnes lapu avota koda galvenē ierakstīt informāciju par šo kodējumu, lai serverī vai vietējā resursdatorā nerastos neskaidrības.

Kopumā visas hiperteksta iezīmēšanas valodas, izņemot HTML, izmanto īpašu xml deklarāciju, kas norāda teksta kodējumu.

Pirms koda parsēšanas pārlūkprogramma zina, kura versija tiek izmantota un kā tieši tai jāinterpretē šīs valodas rakstzīmju kodi. Taču ievērības cienīgs ir tas, ka, saglabājot dokumentu noklusējuma Unicode, tad šo xml deklarāciju var izlaist (kodējums tiks uzskatīts par UTF-8, ja nav BOM, vai UTF-16, ja ir MK).

Html valodas dokumenta gadījumā kodējums tiek izmantots, lai norādītu Meta elements, kas ir rakstīts starp sākuma un aizvēršanas tagiem Head:

... ...

Šis ieraksts ir diezgan atšķirīgs no pieņemtā, taču tas pilnībā atbilst jaunajam Html 5 standartam, kas tiek lēnām ieviests, un to pilnībā pareizi sapratīs visas pašlaik izmantotās pārlūkprogrammas.

Teorētiski labāk būtu ievietot Meta elementu, kas norāda HTML dokumenta kodējumu pēc iespējas augstāk dokumenta galvenē lai brīdī, kad tiek sastapta pirmā rakstzīme tekstā, kas nav no pamata ANSI (kas vienmēr tiek nolasītas pareizi un jebkurā variantā), pārlūkprogrammai jau vajadzētu būt informācijai, kā interpretēt šo rakstzīmju kodus.

Veiksmi tev! Uz drīzu tikšanos emuāra vietnes lapās

Vairāk video varat skatīties, apmeklējot
");">

Jūs varētu interesēt

Kas ir URL adreses, kā atšķiras absolūtās un relatīvās saites vietnei?
OpenServer – mūsdienīgs lokālais serveris un piemērs, kā to izmantot WordPress instalēšanai datorā
Kas ir Chmod, kādas atļaujas piešķirt failiem un mapēm (777, 755, 666) un kā to izdarīt, izmantojot PHP
Yandex meklēšana pēc vietnes un tiešsaistes veikala

Unicode (angļu valodā Unicode) ir rakstzīmju kodēšanas standarts. Vienkārši sakot, šī ir atbilstības tabula starp teksta rakstzīmēm ( , burti, pieturzīmju elementi) binārie kodi. Dators saprot tikai nulles un vieninieku secību. Lai tas zinātu, kas tieši tam ir jāparāda ekrānā, katram simbolam ir jāpiešķir savs unikālais numurs. Astoņdesmitajos gados rakstzīmes tika kodētas vienā baitā, tas ir, astoņos bitos (katrs bits ir 0 vai 1). Tādējādi izrādījās, ka viena tabula (aka kodējums vai komplekts) var uzņemt tikai 256 rakstzīmes. Ar to var nepietikt pat vienai valodai. Tāpēc parādījās daudz dažādu kodējumu, ar kuriem neskaidrības bieži noveda pie tā, ka ekrānā lasāma teksta vietā parādījās dīvainas ķibeles. Bija nepieciešams vienots standarts, kas kļuva par Unicode. Visbiežāk izmantotais kodējums ir UTF-8 (Unicode Transformation Format), kas izmanto 1 līdz 4 baitus, lai attēlotu rakstzīmi.

Simboli

Rakstzīmes Unikoda tabulās ir numurētas ar heksadecimālajiem cipariem. Piemēram, kirilicas lielais burts M ir apzīmēts ar U+041C. Tas nozīmē, ka tas atrodas 041. rindas un C kolonnas krustpunktā. Varat to vienkārši nokopēt un pēc tam kaut kur ielīmēt. Lai nerakņātos pa vairāku kilometru sarakstu, jāizmanto meklēšana. Pārejot uz simbolu lapu, jūs redzēsiet tās Unikoda numuru un veidu, kā tas ir rakstīts dažādos fontos. Jūs varat ievadīt pašu zīmi meklēšanas joslā, pat ja tā vietā ir uzzīmēts kvadrāts, vismaz lai uzzinātu, kas tas bija. Turklāt šajā vietnē ir īpašas (un nejaušas) viena veida ikonu kopas, kas savāktas no dažādām sadaļām, lai atvieglotu lietošanu.

Unikoda standarts ir starptautisks. Tajā ir iekļauti varoņi no gandrīz visiem pasaules skriptiem. Ieskaitot tos, kas vairs netiek izmantoti. Ēģiptes hieroglifi, ģermāņu rūnas, maiju raksti, ķīļraksti un seno valstu alfabēti. Tiek prezentēti arī svaru un mēru apzīmējumi, mūzikas notācijas un matemātiskie jēdzieni.

Unikoda konsorcijs pats neizgudro jaunas rakstzīmes. Tabulām tiek pievienotas tās ikonas, kuras atrod savu pielietojumu sabiedrībā. Piemēram, rubļa zīme tika aktīvi izmantota sešus gadus, pirms tā tika pievienota Unicode. Emociju piktogrammas (emocijas) arī vispirms tika plaši izmantotas Japānā, pirms tās tika iekļautas kodējumā. Bet preču zīmes un uzņēmumu logotipi principā netiek pievienoti. Pat tādi izplatīti kā Apple apple vai Windows karogs. Līdz šim versijā 8.0 ir kodēti aptuveni 120 tūkstoši rakstzīmju.

Kā zināms, dators informāciju glabā binārā formā, attēlojot to kā vieninieku un nulles secību. Lai informāciju pārvērstu cilvēka uztverei ērtā formā, katra unikālā skaitļu secība tiek parādīta ar tai atbilstošo simbolu.

Viena no sistēmām bināro kodu korelēšanai ar drukātajām un kontroles rakstzīmēm ir

Pašreizējā datortehnoloģiju attīstības līmenī lietotājam nav jāzina katras konkrētās rakstzīmes kods. Tomēr vispārēja izpratne par to, kā tiek veikta kodēšana, ir ārkārtīgi noderīga un dažām speciālistu kategorijām pat nepieciešama.

ASCII izveide

Kodējums sākotnēji tika izstrādāts 1963. gadā un pēc tam atjaunināts divas reizes 25 gadu laikā.

Sākotnējā versijā ASCII rakstzīmju tabula ietvēra 128 rakstzīmes, vēlāk parādījās paplašināta versija, kurā tika saglabātas pirmās 128 rakstzīmes, un kodiem ar astoto bitu tika piešķirtas iepriekš trūkstošās rakstzīmes.

Daudzus gadus šis kodējums bija vispopulārākais pasaulē. 2006. gadā latīņu 1252 ieņēma vadošo pozīciju, un no 2007. gada beigām līdz mūsdienām Unicode ir stingri turējis vadošo pozīciju.

ASCII attēlojums datorā

Katrai ASCII rakstzīmei ir savs kods, kas sastāv no 8 rakstzīmēm, kas apzīmē nulli vai vienu. Minimālais skaitlis šajā attēlojumā ir nulle (binārajā sistēmā astoņas nulles), kas ir tabulas pirmā elementa kods.

Divi kodi tabulā tika rezervēti, lai pārslēgtos starp standarta US-ASCII un tā nacionālo variantu.

Pēc tam, kad ASCII sāka ietvert nevis 128, bet 256 rakstzīmes, plaši izplatījās kodēšanas variants, kurā tabulas sākotnējā versija tika saglabāta pirmajos 128 kodos ar 8. bitu nulli. Tautas rakstzīmes tika saglabātas tabulas augšējā pusē (128.-255. pozīcija).

Lietotājam nav tieši jāzina ASCII rakstzīmju kodi. Programmatūras izstrādātājam parasti ir jāzina tikai elementa numurs tabulā, lai vajadzības gadījumā aprēķinātu tā kodu, izmantojot bināro sistēmu.

krievu valoda

Pēc kodējumu izstrādes skandināvu valodām, ķīniešu, korejiešu, grieķu uc 70. gadu sākumā Padomju Savienība sāka veidot savu versiju. Drīzumā tika izstrādāta 8 bitu kodējuma versija ar nosaukumu KOI8, saglabājot pirmos 128 ASCII rakstzīmju kodus un piešķirot tādu pašu vietu skaitu nacionālā alfabēta burtiem un papildu rakstzīmēm.

Pirms Unicode ieviešanas KOI8 dominēja Krievijas interneta segmentā. Bija kodēšanas iespējas gan krievu, gan ukraiņu alfabētam.

ASCII problēmas

Tā kā elementu skaits pat paplašinātajā tabulā nepārsniedza 256, nebija iespējas vienā kodējumā ievietot vairākus dažādus skriptus. Deviņdesmitajos gados Runet parādījās “crocozyabr” problēma, kad teksti, kas tika rakstīti krievu ASCII rakstzīmēs, tika parādīti nepareizi.

Problēma bija tā, ka dažādie ASCII kodi nesakrita. Atcerēsimies, ka dažādas rakstzīmes varēja atrasties pozīcijās 128-255, un, mainot vienu kirilicas kodējumu pret citu, visi teksta burti tika aizstāti ar citiem ar identisku numuru citā kodējuma versijā.

Pašreizējais stāvoklis

Līdz ar Unicode parādīšanos ASCII popularitāte sāka strauji kristies.

Iemesls tam ir fakts, ka jaunais kodējums ļāva uzņemt rakstzīmes no gandrīz visām rakstītajām valodām. Šajā gadījumā pirmās 128 ASCII rakstzīmes atbilst tām pašām Unicode rakstzīmēm.

2000. gadā ASCII bija vispopulārākais kodējums internetā, un to izmantoja 60% Google indeksēto tīmekļa lapu. Līdz 2012. gadam šādu lapu īpatsvars bija samazinājies līdz 17%, un populārākā kodējuma vietu ieņēma Unicode (UTF-8).

Tādējādi ASCII ir svarīga informācijas tehnoloģiju vēstures sastāvdaļa, taču tā izmantošana nākotnē šķiet neperspektīva.

Dators izprot procesu, kā to pārvērš formā, kas ļauj ērtāk pārraidīt, uzglabāt vai automātiski apstrādāt šos datus. Šim nolūkam tiek izmantotas dažādas tabulas. ASCII bija pirmā sistēma, kas tika izstrādāta ASV darbam ar tekstu angļu valodā, kas vēlāk kļuva plaši izplatīta visā pasaulē. Tālāk esošais raksts ir veltīts tā aprakstam, funkcijām, īpašībām un turpmākai izmantošanai.

Informācijas attēlošana un uzglabāšana datorā

Datora monitora vai viena vai otra mobilā digitālā sīkrīka simboli tiek veidoti, pamatojoties uz dažādu rakstzīmju vektoru formu komplektiem un kodu, kas ļauj starp tiem atrast simbolu, kas jāievieto pareizajā vietā. Tas attēlo bitu secību. Tādējādi katrai rakstzīmei unikāli jāatbilst nulles un vieninieku kopai, kas parādās noteiktā, unikālā secībā.

Kā tas viss sākās

Vēsturiski pirmie datori bija angļu valodā. Lai tajos iekodētu simbolisku informāciju, pietika ar tikai 7 bitu atmiņas izmantošanu, savukārt šim nolūkam tika atvēlēts 1 baits, kas sastāv no 8 bitiem. Datoram saprotamo rakstzīmju skaits šajā gadījumā bija 128. Šīs rakstzīmes ietvēra angļu alfabētu ar pieturzīmēm, cipariem un dažām īpašām rakstzīmēm. 1963. gadā izstrādāto angļu valodas septiņu bitu kodējumu ar atbilstošo tabulu (koda lapu) sauca par Amerikas standarta informācijas apmaiņas kodu. Parasti tā apzīmēšanai tika izmantots un joprojām tiek izmantots saīsinājums “ASCII kodējums”.

Pāreja uz daudzvalodību

Laika gaitā datori kļuva plaši izmantoti valstīs, kurās nerunā angliski. Šajā sakarā bija nepieciešami kodējumi, kas ļauj izmantot valsts valodas. Tika nolemts neizgudrot riteni no jauna un par pamatu ņemt ASCII. Kodēšanas tabula jaunajā izdevumā ir ievērojami paplašināta. 8. bita izmantošana ļāva datorvalodā tulkot 256 rakstzīmes.

Apraksts

ASCII kodējumam ir tabula, kas ir sadalīta 2 daļās. Tikai tā pirmā puse tiek uzskatīta par vispārpieņemtu starptautisku standartu. Tas iekļauj:

  • Rakstzīmes ar sērijas numuriem no 0 līdz 31, kas kodētas secībās no 00000000 līdz 00011111. Tās ir rezervētas kontroles rakstzīmēm, kas kontrolē teksta attēlošanas procesu ekrānā vai printerī, skaņas signāla atskaņošanu utt.
  • Rakstzīmes ar NN tabulā no 32 līdz 127, kodējušas secības no 00100000 līdz 01111111, veido tabulas standarta daļu. Tajos ietilpst atstarpe (N 32), latīņu alfabēta burti (mazie un lielie burti), desmit ciparu skaitļi no 0 līdz 9, pieturzīmes, dažādu stilu iekavas un citi simboli.
  • Rakstzīmes ar sērijas numuriem no 128 līdz 255, kas kodētas ar secībām no 10000000 līdz 11111111. Tie ietver nacionālo alfabētu burtus, kas nav latīņu alfabēts. Tieši šī alternatīvā ASCII tabulas daļa tiek izmantota, lai krievu rakstzīmes pārvērstu datora formā.

Daži īpašumi

ASCII kodējuma iezīmes ietver atšķirību starp burtiem “A” - “Z” ar mazajiem un lielajiem burtiem tikai par vienu bitu. Šis apstāklis ​​ievērojami vienkāršo reģistra konvertēšanu, kā arī pārbauda, ​​vai tas pieder noteiktam vērtību diapazonam. Turklāt visi burti ASCII kodēšanas sistēmā tiek attēloti ar saviem kārtas numuriem alfabētā, kas binārajā skaitļu sistēmā tiek rakstīti ar 5 cipariem, pirms kuriem ir 011 2 mazajiem burtiem un 010 2 lielajiem burtiem.

Viena no ASCII kodējuma iezīmēm ir 10 ciparu attēlojums - "0" - "9". Otrajā skaitļu sistēmā tie sākas ar 00112 un beidzas ar 2 skaitļu vērtībām. Tādējādi 0101 2 ir līdzvērtīgs decimālajam skaitlim pieci, tāpēc rakstzīme "5" tiek rakstīta kā 0011 01012. Pamatojoties uz iepriekš minēto, jūs varat viegli pārvērst BCD skaitļus ASCII virknē, pievienojot bitu secību 00112 katram nibble pa kreisi.

"Unikods"

Kā jūs zināt, lai parādītu tekstus Dienvidaustrumāzijas grupas valodās, ir nepieciešami tūkstošiem rakstzīmju. Šāds skaits no tiem nekādi nav aprakstāms vienā informācijas baitā, tāpēc pat ASCII paplašinātās versijas vairs nevarēja apmierināt dažādu valstu lietotāju pieaugošās vajadzības.

Tādējādi radās nepieciešamība izveidot universālu teksta kodējumu, kura izstrādi, sadarbojoties ar daudziem globālās IT nozares līderiem, uzņēmās Unicode konsorcijs. Tās speciālisti izveidoja UTF 32 sistēmu. Tajā 1 rakstzīmes kodēšanai tika piešķirti 32 biti, kas veido 4 baitus informācijas. Galvenais trūkums bija straujš nepieciešamās atmiņas apjoma pieaugums pat 4 reizes, kas radīja daudzas problēmas.

Tajā pašā laikā lielākajā daļā valstu, kurās oficiālās valodas pieder indoeiropiešu grupai, rakstzīmju skaits, kas vienāds ar 2 32, ir vairāk nekā pārmērīgs.

Unicode konsorcija speciālistu turpmākā darba rezultātā parādījās UTF-16 kodējums. Tā kļuva par simboliskas informācijas konvertēšanas iespēju, kas bija piemērota ikvienam gan nepieciešamās atmiņas apjoma, gan kodēto rakstzīmju skaita ziņā. Tāpēc UTF-16 tika pieņemts pēc noklusējuma, un vienai rakstzīmei ir jārezervē 2 baiti.

Pat šai diezgan progresīvajai un veiksmīgajai Unicode versijai bija daži trūkumi, un pēc pārejas no paplašinātās ASCII versijas uz UTF-16 dokumenta svars dubultojās.

Šajā sakarā tika nolemts izmantot UTF-8 mainīga garuma kodējumu. Šajā gadījumā katra avota teksta rakstzīme tiek kodēta kā secība, kuras garums ir no 1 līdz 6 baitiem.

Sazinieties ar Amerikas standarta kodu informācijas apmaiņai

Visas latīņu rakstzīmes UTF-8 mainīgajā garumā tiek kodētas 1 baitā, tāpat kā ASCII kodēšanas sistēmā.

YTF-8 īpatnība ir tāda, ka tekstu latīņu valodā, neizmantojot citas rakstzīmes, pat programmas, kas nesaprot Unicode, joprojām varēs to lasīt. Citiem vārdiem sakot, pamata ASCII teksta kodējums vienkārši kļūst par daļu no jaunā mainīga garuma UTF. Kirilicas rakstzīmes YTF-8 aizņem 2 baitus, un, piemēram, gruzīnu rakstzīmes - 3 baitus. Izveidojot UTF-16 un 8, tika atrisināta galvenā problēma izveidot vienu koda telpu fontos. Kopš tā laika fontu ražotāji tabulu var aizpildīt tikai ar teksta rakstzīmju vektorformām, pamatojoties uz savām vajadzībām.

Dažādas operētājsistēmas dod priekšroku dažādiem kodējumiem. Lai varētu lasīt un rediģēt tekstus, kas rakstīti citā kodējumā, tiek izmantotas krievu teksta konvertēšanas programmas. Dažos teksta redaktoros ir iebūvēti pārkodētāji un tie ļauj lasīt tekstu neatkarīgi no kodējuma.

Tagad jūs zināt, cik rakstzīmju ir ASCII kodējumā un kā un kāpēc tas tika izstrādāts. Protams, mūsdienās Unicode standarts ir visizplatītākais pasaulē. Tomēr nedrīkst aizmirst, ka tas ir balstīts uz ASCII, tāpēc ir jānovērtē tā izstrādātāju ieguldījums IT jomā.

decembris Hex Simbols decembris Hex Simbols
000 00 speciālists. NOP 128 80 Ђ
001 01 speciālists. SOH 129 81 Ѓ
002 02 speciālists. STX 130 82
003 03 speciālists. ETX 131 83 ѓ
004 04 speciālists. EOT 132 84
005 05 speciālists. ENQ 133 85
006 06 speciālists. ACK 134 86
007 07 speciālists. BEL 135 87
008 08 speciālists. B.S. 136 88
009 09 speciālists. TAB 137 89
010 0Aspeciālists. LF 138 8AЉ
011 0Bspeciālists. VT 139 8B‹ ‹
012 0Cspeciālists. FF 140 8CЊ
013 0Dspeciālists. CR 141 8DЌ
014 0Especiālists. SO 142 8EЋ
015 0Fspeciālists. S.I. 143 8FЏ
016 10 speciālists. DLE 144 90 ђ
017 11 speciālists. DC1 145 91
018 12 speciālists. DC2 146 92
019 13 speciālists. DC3 147 93
020 14 speciālists. DC4 148 94
021 15 speciālists. N.A.K. 149 95
022 16 speciālists. SYN 150 96
023 17 speciālists. ETB 151 97
024 18 speciālists. VAR 152 98
025 19 speciālists. E.M. 153 99
026 1Aspeciālists. SUB 154 9Aљ
027 1Bspeciālists. ESC 155 9B
028 1Cspeciālists. FS 156 9Cњ
029 1Dspeciālists. G.S. 157 9Dќ
030 1Especiālists. R.S. 158 9Eћ
031 1Fspeciālists. ASV 159 9Fџ
032 20 sajūgs SP (kosmoss) 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8Yo
041 29 ) 169 A9©
042 2A* 170 A.A.Є
043 2B+ 171 AB«
044 2C, 172 A.C.¬
045 2D- 173 AD­
046 2E. 174 A.E.®
047 2F/ 175 A.F.Ї
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8e
057 39 9 185 B9
058 3A: 186 BA.є
059 3B; 187 BB»
060 3C< 188 B.C.ј
061 3D= 189 BDЅ
062 3E> 190 BEѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 IN
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 UN
071 47 G 199 C7 Z
072 48 H 200 C8 UN
073 49 es 201 C9 Y
074 4A 202 C.A. UZ
075 4BK 203 C.B. L
076 4CL 204 CC M
077 4DM 205 CD N
078 4EN 206 C.E. PAR
079 4FO 207 CF P
080 50 P 208 D0 R
081 51 J 209 D1 AR
082 52 R 210 D2 T
083 53 S 211 D3 U
084 54 T 212 D4 F
085 55 U 213 D5 X
086 56 V 214 D6 C
087 57 W 215 D7 H
088 58 X 216 D8 Sh
089 59 Y 217 D9 SCH
090 5AZ 218 D.A. Kommersant
091 5B[ 219 D.B. Y
092 5C\ 220 DC b
093 5D] 221 DD E
094 5E^ 222 DE YU
095 5F_ 223 DF es
096 60 ` 224 E0 A
097 61 a 225 E1 b
098 62 b 226 E2 V
099 63 c 227 E3 G
100 64 d 228 E4 d
101 65 e 229 E5 e
102 66 f 230 E6 un
103 67 g 231 E7 h
104 68 h 232 E8 Un
105 69 i 233 E9 th
106 6Aj 234 E.A. Uz
107 6Bk 235 E.B. l
108 6Cl 236 E.C. m
109 6Dm 237 ED n
110 6En 238 E.E. O
111 6Fo 239 E.F. P
112 70 lpp 240 F0 R
113 71 q 241 F1 Ar
114 72 r 242 F2 T
115 73 s 243 F3 plkst
116 74 t 244 F4 f
117 75 u 245 F5 X
118 76 v 246 F6 ts
119 77 w 247 F7 h
120 78 x 248 F8 w
121 79 y 249 F9 sch
122 7Az 250 F.A. ъ
123 7B{ 251 FB s
124 7C| 252 F.C. b
125 7D} 253 FD uh
126 7E~ 254 F.E. Yu
127 7FSpeciālists. DEL 255 FF es

ASCII Windows rakstzīmju kodu tabula.
Speciālo (kontroles) rakstzīmju apraksts

Jāatzīmē, ka ASCII tabulas vadības rakstzīmes sākotnēji tika izmantotas, lai nodrošinātu datu apmaiņu, izmantojot teletaipu, datu ievadi no perforētās lentes un vienkāršai ārējo ierīču vadībai.
Pašlaik lielākā daļa ASCII tabulas vadības rakstzīmju vairs nenes šo slodzi, un tās var izmantot citiem mērķiem.
Kods Apraksts
NUL, 00Nulle, tukša
SOH, 01Virsraksta sākums
STX, 02Teksta sākums, teksta sākums.
ETX, 03Teksta beigas, teksta beigas
EOT, 04Pārraides beigas
ENQ, 05Jautājiet. Lūdzu apstipriniet
AK, 06Atzinība. Es apstiprinu
BEL, 07Zvanīt, zvani
BS, 08Backspace, atgriezieties vienu rakstzīmi atpakaļ
CILNE, 09Cilne, horizontāla cilne
LF, 0ALīnijas padeve, līnijas padeve.
Mūsdienās lielākajā daļā programmēšanas valodu tas tiek apzīmēts kā \n
VT, 0BVertikāla cilne, vertikāla tabula.
FF, 0CVeidlapas plūsma, lapas plūsma, jauna lapa
CR, 0DKarieta atgriešana, karietes atgriešana.
Mūsdienās lielākajā daļā programmēšanas valodu to apzīmē kā \r
SO,0EShift Out, mainiet tintes lentes krāsu drukas ierīcē
SI,0FShift In, atgrieziet drukas ierīces tintes lentes krāsu atpakaļ
DLE, 10Data Link Escape, pārslēdzot kanālu uz datu pārraidi
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Ierīču vadība, ierīces vadības simboli
NAK, 15Negatīvs apstiprinājums, es neapstiprinu.
SYN, 16Sinhronizācija. Sinhronizācijas simbols
ETB, 17Teksta bloka beigas, teksta bloka beigas
CAN, 18Atcelt, iepriekš pārsūtīta atcelšana
EM, 19Vidēja beigas
SUB, 1AAizstājējs, aizstājējs. Novietots simbola vietā, kura nozīme pārraides laikā tika zaudēta vai sabojāta
ESC, 1BEscape Control Sequence
FS, 1CFailu atdalītājs, failu atdalītājs
GS, 1DGrupas atdalītājs
RS, 1EIerakstu atdalītājs, ierakstu atdalītājs
ASV, 1FVienības atdalītājs
DEL, 7FDzēst, dzēst pēdējo rakstzīmi.



Tops