Kodiranje ruskog jezika u sustavu Windows. Korištenje uslužnog programa konzole DISM

Krakozyabry- Kakva je ovo zanimljiva riječ? Ovu riječ obično koriste ruski korisnici za opisivanje netočnog/netočnog prikaza (kodiranja) znakova u programima ili samom Operativnom sustavu.
Zašto se to događa? Nećete naći definitivan odgovor. To može biti zbog trikova naših "omiljenih" virusa, možda zbog kvara Windows OS-a (na primjer, nestalo je struje i računalo se isključilo), možda je program stvorio sukob s drugim OS-om i sve je nestalo poremećen. U opći razlozi može ih biti mnogo, ali najzanimljiviji je "Samo je ustao i slomio se."
Pročitajte članak i saznajte kako riješiti problem s kodiranjem u programima i Windows OS-u, nakon što se dogodi.

Za one koji još uvijek ne razumiju što mislim, evo nekoliko:


Usput, i ja sam se jednom našao u ovoj situaciji i još uvijek imam datoteku na desktopu koja mi je pomogla da se nosim s tim. Zato sam odlučio napisati ovaj članak.

Nekoliko je "stvari" odgovorno za prikaz kodiranja (fonta) u sustavu Windows - jezik, registar i datoteke samog OS-a. Sada ćemo ih provjeriti zasebno i točku po točku.

Kako ukloniti i ispraviti krakozyabry umjesto ruskih (ruskih slova) u programu ili Windowsima.

1. Provjeravanje instalirani jezik za programe koji ne podržavaju Unicode. Možda ste to izgubili.

Dakle, slijedimo put: Upravljačka ploča - Regionalne i jezične mogućnosti - kartica Napredno
Tamo se uvjeravamo da je jezik ruski.


U sustavu Windows XP, osim ovoga, postoji popis ispod " Kodne stranice tablice pretvorbe" iu njemu je redak s brojem 20880. Potrebno je da postoji i ruski

6. Posljednja točka, u kojem vam dajem datoteku koja mi je jednom pomogla da sve popravim i zato sam je ostavio za uspomenu. Evo arhive:

Unutra se nalaze dvije datoteke: krakozbroff.cmd i krakozbroff.reg

Imaju isti princip - ispravni hijeroglifi, kvadrati, pitanja ili uskličnici u programima i Windows OS-u (uobičajeno rečeno krakozyabry). Koristio sam prvi i pomogao mi je.

I za kraj, par savjeta:
1) Ako radite s registrom, ne zaboravite napraviti sigurnosnu kopiju ( sigurnosna kopija) u slučaju da nešto pođe po zlu.
2) Preporučljivo je provjeriti 1. točku nakon svake točke.

To je sve. Sada znate kako popraviti/ukloniti krekere (kvadratiće, hijeroglife, uskličnike i upitnike) u programu ili Windowsima.

Pozdrav, dragi čitatelji bloga. Danas ćemo razgovarati s vama o tome odakle dolaze krakozyabrs na web stranici iu programima, koja kodiranja teksta postoje i koja bi se trebala koristiti. Pogledajmo pobliže povijest njihovog razvoja, počevši od osnovnog ASCII-ja, kao i njegovih proširenih verzija CP866, KOI8-R, Windows 1251 i završavajući s modernim Unicode Consortium kodiranjem UTF 16 i 8.

Nekima se ova informacija može činiti nepotrebnom, ali znate li koliko pitanja primam posebno u vezi s puzećim krakozyabrima (nečitljivi skup znakova). Sada ću imati priliku uputiti sve na tekst ovog članka i pronaći svoje pogreške. Pa, pripremite se za upijanje informacija i pokušajte pratiti tijek priče.

ASCII - osnovno kodiranje teksta za latinicu

Razvoj kodiranja teksta dogodio se istodobno s formiranjem IT industrije, a tijekom tog vremena uspjeli su proći dosta promjena. Povijesno gledano, sve je počelo s EBCDIC-om, koji je bio prilično disonantan u ruskom izgovoru, što je omogućilo kodiranje slova latinične abecede, arapskih brojeva i interpunkcijskih znakova s ​​kontrolnim znakovima.

Ali ipak, polazište za razvoj modernog kodiranja teksta treba smatrati slavnim ASCII(Američki standardni kod za razmjenu informacija, koji se na ruskom obično izgovara kao "aski"). Opisuje prvih 128 znakova koje najčešće koriste korisnici engleskog govornog područja - , arapske brojke i interpunkcijske znakove.

Ovih 128 znakova opisanih u ASCII-ju također uključuje neke servisne znakove kao što su zagrade, hash oznake, zvjezdice itd. Zapravo, možete ih i sami vidjeti:

Upravo je ovih 128 znakova iz izvorne verzije ASCII-ja postalo standard, au svakom drugom kodiranju sigurno ćete ih pronaći i pojavljivat će se ovim redoslijedom.

Ali činjenica je da s jednim bajtom informacija možete kodirati ne 128, već čak 256 različitih vrijednosti (dva na potenciju osam jednako je 256), tako da nakon osnovne verzije Asuke postoji cijeli niz proširena ASCII kodiranja, u kojem je osim 128 osnovnih znakova bilo moguće kodirati i simbole nacionalnog kodiranja (na primjer, ruski).

Ovdje je vjerojatno vrijedno reći nešto više o sustavima brojeva koji se koriste u opisu. Prvo, kao što svi znate, računalo radi samo s brojevima u binarnom sustavu, odnosno s nulama i jedinicama ("Booleova algebra", ako ju je netko pohađao na institutu ili školi). , od kojih je svaki dva na potenciju, počevši od nule pa sve do dva na sedmi:

Nije teško razumjeti da sve moguće kombinacije nula i jedinica u takvom dizajnu mogu biti samo 256. Pretvaranje broja iz binarnog sustava u decimalni sustav prilično je jednostavno. Samo trebate zbrojiti sve moći dvojke s jedinicama iznad njih.

U našem primjeru, ispada da je to 1 (2 na nultu potenciju) plus 8 (dva na 3 potenciju), plus 32 (dva na petu potenciju), plus 64 (na šestu potenciju), plus 128 (na sedmu potenciju). Ukupno dobiva 233 in decimalni sustav Računanje. Kao što vidite, sve je vrlo jednostavno.

Ali ako pažljivo pogledate tablicu s ASCII znakovima, vidjet ćete da su predstavljeni u heksadecimalnom kodiranju. Na primjer, "zvjezdica" odgovara heksadecimalnom broju 2A u Aski. Vjerojatno znate da se u heksadecimalnom brojevnom sustavu, osim arapskih brojeva, koriste i latinična slova od A (znači deset) do F (znači petnaest).

Pa onda, za prijevod binarni broj na heksadecimalni pribjeći sljedećoj jednostavnoj i očitoj metodi. Svaki bajt informacija podijeljen je na dva dijela od četiri bita, kao što je prikazano na gornjoj snimci zaslona. Da. U svakom pola bajta, samo šesnaest vrijednosti (dva na četvrtu potenciju) može se kodirati u binarnom obliku, što se lako može predstaviti kao heksadecimalni broj.

Štoviše, u lijevoj polovici bajta stupnjevi će se morati ponovno brojati počevši od nule, a ne kao što je prikazano na snimci zaslona. Kao rezultat toga, jednostavnim izračunima dobivamo da je broj E9 kodiran na snimci zaslona. Nadam se da vam je bio jasan tijek mog razmišljanja i rješenje ove zagonetke. Pa, sada nastavimo, zapravo, govoriti o kodiranju teksta.

Proširene verzije Asuke - CP866 i KOI8-R kodiranja s pseudografijom

Dakle, počeli smo razgovarati o ASCII-ju, koji je bio, takoreći, polazište za razvoj svih modernih kodiranja (Windows 1251, Unicode, UTF 8).

U početku je sadržavao samo 128 znakova latinične abecede, arapske brojeve i nešto drugo, ali u proširenoj verziji postalo je moguće koristiti svih 256 vrijednosti koje se mogu kodirati u jednom bajtu informacija. Oni. Postalo je moguće dodati simbole slova vašeg jezika u Aski.

Ovdje ćemo morati ponovno napraviti digresiju kako bismo objasnili - zašto nam uopće trebaju kodiranja? tekstova i zašto je to toliko važno. Znakovi na zaslonu vašeg računala formiraju se na temelju dvije stvari - skupova vektorskih oblika (reprezentacija) različitih znakova (nalaze se u datotekama s ) i koda koji vam omogućuje izvlačenje iz tog skupa vektorskih oblika (datoteka fonta ) upravo znak koji će trebati umetnuti na Pravo mjesto.

Jasno je da su sami fontovi odgovorni za vektorske oblike, ali operativni sustav i programi koji se u njemu koriste odgovorni su za kodiranje. Oni. bilo koji tekst na vašem računalu bit će skup bajtova, od kojih svaki kodira jedan jedini znak istog teksta.

Program koji prikazuje ovaj tekst na ekranu (uređivač teksta, preglednik itd.), prilikom parsiranja koda čita kodiranje sljedećeg znaka i traži odgovarajući vektorski oblik u potrebnu datoteku font koji je povezan za prikaz ovog tekstualnog dokumenta. Sve je jednostavno i banalno.

To znači da kako bismo kodirali bilo koji znak koji nam je potreban (na primjer, iz nacionalne abecede), moraju biti ispunjena dva uvjeta - vektorski oblik ovog znaka mora biti u korištenom fontu i taj se znak može kodirati u proširenom ASCII kodiranju u jedan bajt. Stoga postoji cijela hrpa takvih opcija. Samo za kodiranje znakova ruskog jezika postoji nekoliko varijanti proširene Aske.

Na primjer, izvorno se pojavio CP866, koji je imao mogućnost korištenja znakova iz ruske abecede i bio je proširena verzija ASCII-ja.

Oni. nju gornji dio u potpunosti se podudarao s osnovnom verzijom Aske (128 latiničnih znakova, brojeva i drugih gluposti), koja je prikazana na snimci zaslona iznad, ali donji dio tablice s CP866 kodiranjem imao je oblik prikazan na snimci zaslona odmah ispod i omogućio vam za kodiranje još 128 znakova (ruska slova i sve vrste pseudo-grafike):

Vidite, u desnom stupcu brojevi počinju s 8, jer... brojevi od 0 do 7 odnose se na osnovni dio ASCII-ja (pogledajte prvu sliku zaslona). Da. Rusko slovo "M" u CP866 imat će kod 9C (nalazi se na sjecištu odgovarajućeg retka s 9 i stupca s brojem C u heksadecimalnom brojevnom sustavu), koji se može napisati u jednom bajtu informacije, a ako postoji odgovarajući font s ruskim znakovima, ovo će se slovo bez problema pojaviti u tekstu.

Odakle ovaj iznos? pseudografija u CP866? Cijela stvar je u tome što je ovo kodiranje za ruski tekst razvijeno još u onim mračnim godinama kada grafički operativni sustavi nisu bili tako rašireni kao sada. A u Dosi i sličnim tekstualnim operativnim sustavima, pseudografika je omogućila da se barem nekako diverzificira dizajn tekstova, pa stoga CP866 i svi ostali njegovi vršnjaci iz kategorije proširenih verzija Asuke obiluju njime.

CP866 je distribuirao IBM, ali osim toga, razvijen je niz kodiranja za znakove ruskog jezika, na primjer, isti tip (prošireni ASCII) može se pripisati KOI8-R:

Načelo njegovog rada ostaje isto kao kod CP866 malo ranije opisanog - svaki znak teksta kodiran je jednim bajtom. Snimka zaslona prikazuje drugu polovicu tablice KOI8-R, jer prva polovica potpuno je u skladu s osnovnom Asukom, koja je prikazana na prvoj snimci zaslona u ovom članku.

Među značajkama KOI8-R kodiranja, može se primijetiti da ruska slova u njegovoj tablici nisu poredana abecednim redom, kao što su to, na primjer, učinili u CP866.

Ako pogledate prvu snimku zaslona (osnovnog dijela, koji je uključen u sva proširena kodiranja), primijetit ćete da se u KOI8-R ruska slova nalaze u istim ćelijama tablice kao i odgovarajuća slova latinične abecede. iz prvog dijela tablice. To je učinjeno radi praktičnosti prebacivanja s ruskih na latinične znakove odbacivanjem samo jednog bita (dva na sedmu potenciju ili 128).

Windows 1251 - moderna verzija ASCII-ja i zašto se pojavljuju pukotine

Daljnji razvoj kodiranja teksta bio je posljedica činjenice da su grafički operacijski sustavi dobivali na popularnosti i da je potreba za korištenjem pseudografike u njima s vremenom nestala. Kao rezultat toga, nastala je cijela grupa koja je, u biti, još uvijek bila proširena verzija Asuke (jedan znak teksta kodiran je samo jednim bajtom informacije), ali bez upotrebe pseudografskih simbola.

Pripadali su takozvanim ANSI kodovima, koje je razvio Američki institut za standarde. U uobičajenom govoru naziv ćirilica koristio se i za verziju s podrškom za ruski jezik. Primjer za to bi bio.

Povoljno se razlikovao od prethodno korištenih CP866 i KOI8-R po tome što su mjesto pseudografskih simbola u njemu zauzeli nedostajući simboli ruske tipografije (osim znaka naglaska), kao i simboli koji se koriste u slavenskim jezicima bliskim ruski (ukrajinski, bjeloruski itd.):

Zbog takvog obilja kodiranja ruskog jezika, proizvođača i proizvođača fontova softver stalno su se javljale glavobolje, a vi i ja, dragi čitatelji, često smo dobivali iste notorne krakozyabry kada je došlo do zabune s verzijom korištenom u tekstu.

Vrlo često su se pojavljivali prilikom slanja i primanja poruka putem e-pošta, što je podrazumijevalo stvaranje vrlo složenih tablica pretvorbe, koje, zapravo, nisu bile u stanju riješiti ovaj problem, a korisnici su se često koristili za dopisivanje kako bi izbjegli zloglasne trikove pri korištenju ruskih kodiranja poput CP866, KOI8-R ili Windows 1251.

Zapravo, krakozyabrs koji se pojavljuju umjesto ruskog teksta bili su rezultat netočne upotrebe kodiranja ovog jezika, koji nije odgovarao onom u kojem je bio kodiran tekstualna poruka u početku.

Na primjer, ako pokušate prikazati znakove kodirane pomoću CP866 pomoću kodna tablica Windows 1251, tada će se pojaviti te iste besmislice (besmisleni skup znakova), potpuno zamjenjujući tekst poruke.

Slična se situacija vrlo često pojavljuje na forumima ili blogovima, kada se tekst s ruskim znakovima greškom sprema u pogrešnom kodiranju koje se na web mjestu koristi prema zadanim postavkama ili u pogrešnom kodiranju uređivač teksta, koji kodu dodaje gegove koji nisu vidljivi golim okom.

Na kraju je mnogima dosadila ovakva situacija s gomilom kodiranja i stalnim puzanjem sranja, te su se stvorili preduvjeti za stvaranje nove univerzalne varijacije koja bi zamijenila sve postojeće i konačno riješila problem s izgledom nečitljivih tekstova. Osim toga, postojao je problem jezika poput kineskog, gdje je bilo mnogo više jezičnih znakova od 256.

Unicode - univerzalna kodiranja UTF 8, 16 i 32

Ove tisuće znakova skupine jezika jugoistočne Azije nikako se ne mogu opisati u jednom bajtu informacija koje su bile dodijeljene za kodiranje znakova u proširenim verzijama ASCII-ja. Kao rezultat toga, stvoren je konzorcij tzv Unicode(Unicode - Unicode Consortium) uz suradnju mnogih lidera IT industrije (onih koji proizvode softver, koji kodiraju hardver, koji kreiraju fontove), koji su bili zainteresirani za nastanak univerzalnog kodiranja teksta.

Prva varijacija objavljena pod pokroviteljstvom Unicode konzorcija bila je UTF 32. Broj u nazivu kodiranja označava broj bitova koji se koriste za kodiranje jednog znaka. 32 bita jednaka su 4 bajta informacija koje će biti potrebne za kodiranje jednog znaka u novom univerzalnom UTF kodiranju.

Kao rezultat toga, ista datoteka s tekstom kodiranim u proširenoj verziji ASCII iu UTF-32, u potonjem slučaju, imat će četiri puta veću veličinu (težinu). Ovo je loše, ali sada imamo priliku pomoću YTF kodirati broj znakova jednak dva na trideset drugu potenciju ( milijarde znakova, koji će pokriti bilo koju stvarno potrebnu vrijednost s kolosalnom marginom).

Ali mnoge zemlje s jezicima europske skupine uopće nisu trebale koristiti tako veliki broj znakova u kodiranju, međutim, kada su koristile UTF-32, bez razloga su dobile četverostruko povećanje težine tekstualni dokumenti, a posljedično i povećanje količine internetskog prometa i količine pohranjenih podataka. To je puno, a takvo rasipanje nitko si ne bi mogao priuštiti.

Kao rezultat razvoja Unicodea, UTF-16, koji se pokazao toliko uspješnim da je standardno usvojen kao osnovni prostor za sve znakove koje koristimo. Koristi dva bajta za kodiranje jednog znaka. Da vidimo kako ova stvar izgleda.

U operacijskom sustavu Windows možete slijediti stazu "Start" - "Programi" - "Pribor" - "Alati sustava" - "Tablica znakova". Kao rezultat, otvorit će se tablica s vektorskim oblicima svih fontova instaliranih na vašem sustavu. Ako odaberete u " Dodatne mogućnosti» skup Unicode znakova, možete vidjeti za svaki font posebno cijeli raspon znakova koji su u njemu uključeni.

Usput, klikom na bilo koji od njih možete vidjeti njegov dvobajt kod u UTF-16 formatu, koji se sastoji od četiri heksadecimalne znamenke:

Koliko se znakova može kodirati u UTF-16 pomoću 16 bita? 65,536 (dva na potenciju od šesnaest), a to je broj koji je usvojen kao osnovni prostor u Unicodeu. Osim toga, postoje načini za kodiranje oko dva milijuna znakova pomoću njega, ali oni su bili ograničeni na prošireni prostor od milijun znakova teksta.

Ali ni ova uspješna inačica Unicode kodiranja nije donijela puno zadovoljstva onima koji su npr. pisali programe samo u Engleski jezik, jer se nakon prijelaza s proširene verzije ASCII na UTF-16 težina dokumenata udvostručila (jedan bajt po znaku u Askiju i dva bajta po istom znaku u UTF-16).

Odlučeno je osmisliti upravo kako bi se zadovoljili svi i svašta u Unicode konzorciju kodiranje promjenjive duljine. Zvao se UTF-8. Unatoč osmici u nazivu, zapravo ima promjenjivu duljinu, tj. Svaki znak teksta može se kodirati u niz duljine od jednog do šest bajtova.

U praksi UTF-8 koristi samo raspon od jednog do četiri bajta, jer izvan četiri bajta koda više nije ni teoretski moguće zamisliti ništa. Svi latinični znakovi u njemu su kodirani u jedan bajt, baš kao u dobrom starom ASCII-ju.

Ono što je vrijedno pažnje je da u slučaju kodiranja samo latinice, čak i oni programi koji ne razumiju Unicode će i dalje čitati ono što je kodirano u YTF-8. Oni. središnji dio Asuke jednostavno je prebačen u ovu kreaciju konzorcija Unicode.

Ćirilični znakovi u UTF-8 su kodirani u dva bajta, a, na primjer, gruzijski znakovi su kodirani u tri bajta. Konzorcij Unicode, nakon što je stvorio UTF 16 i 8, riješio je glavni problem - sada imamo fontovi imaju jedan prostor koda. A sada ga njihovi proizvođači mogu ispuniti samo vektorskim oblicima tekstualnih znakova na temelju svojih snaga i mogućnosti. Sada čak dolaze u setovima.

U "Tablici znakova" iznad možete vidjeti da različiti fontovi podržavaju različit broj znakova. Neki fontovi bogati Unicodeom mogu biti prilično teški. Ali sada se ne razlikuju po tome što su stvoreni za različita kodiranja, već po tome što je proizvođač fonta ispunio ili nije u potpunosti ispunio prostor jednog koda određenim vektorskim oblicima.

Lude riječi umjesto ruskih slova - kako to popraviti

Pogledajmo sada kako se krakozyabrs pojavljuju umjesto teksta ili, drugim riječima, kako se odabire ispravno kodiranje za ruski tekst. Zapravo, to je postavljeno u programu u kojem kreirate ili uređujete ovaj tekst, ili kodirate pomoću fragmenata teksta.

Za uređivanje i kreiranje tekstualne datoteke Osobno koristim vrlo dobar, po mom mišljenju, . Međutim, može istaknuti sintaksu stotina drugih programskih i označnih jezika, a također ima mogućnost proširenja pomoću dodataka. Čitati detaljan pregled ovaj prekrasan program na priloženoj poveznici.

U gornji izbornik Notepad++ ima stavku "Encodings", gdje ćete imati priliku pretvoriti postojeću opciju u onu koja se prema zadanim postavkama koristi na vašoj stranici:

U slučaju stranice na Joomli 1.5 i novijoj verziji, kao iu slučaju bloga na WordPressu, trebate odabrati opciju za izbjegavanje pojave pukotina UTF 8 bez BOM-a. Što je prefiks sastavnice?

Činjenica je da su, kada su razvijali kodiranje YUTF-16, iz nekog razloga odlučili priložiti mu nešto poput mogućnosti pisanja koda znakova u izravnom nizu (na primjer, 0A15) i obrnuto (150A) . A kako bi programi točno razumjeli u kojem redoslijedu čitati kodove, izumljen je BOM(Byte Order Mark ili, drugim riječima, signatura), što se izražavalo dodavanjem tri dodatna bajta na sam početak dokumenata.

U UTF-8 kodiranju, u konzorciju Unicode nisu predviđeni BOM-ovi, pa stoga dodavanje potpisa (ona notorna dodatna tri bajta na početku dokumenta) jednostavno sprječava neke programe u čitanju koda. Stoga kod spremanja datoteka u UTF uvijek moramo odabrati opciju bez BOM-a (bez potpisa). Dakle, vi ste unaprijed zaštitite se od puzanja krakozyabrs.

Ono što je vrijedno pažnje je da neki programi u sustavu Windows to ne mogu učiniti (ne mogu spremiti tekst u UTF-8 bez BOM-a), na primjer, isti zloglasni Windows Notepad. Sprema dokument u UTF-8, ali još uvijek dodaje potpis (tri dodatna bajta) na njegov početak. Štoviše, ti će bajtovi uvijek biti isti - pročitajte kod u izravnom nizu. Ali na poslužiteljima, zbog ove sitnice, može nastati problem - izaći će prevaranti.

Stoga, ni pod kojim uvjetima Nemojte koristiti obični Windows notepad za uređivanje dokumenata na vašoj stranici ako ne želite da se pojave pukotine. Najbolje i najviše jednostavna opcija Smatram već spomenuti uređivač Notepad++, koji praktički nema nedostataka i sastoji se samo od prednosti.

U Notepad++, kada odaberete kodiranje, imat ćete opciju pretvoriti tekst u UCS-2 kodiranje, koje je po prirodi vrlo blisko standardu Unicode. Također će u Notepadu biti moguće kodirati tekst u ANSI, tj. u odnosu na ruski jezik, to će biti Windows 1251, koji smo već opisali gore.Odakle dolaze ove informacije?

Upisan je u vaš registar operacijski sustav Windows - koje kodiranje odabrati u slučaju ANSI, koje odabrati u slučaju OEM (za ruski jezik to će biti CP866). Ako postavite neki drugi zadani jezik na svom računalu, ta će kodiranja biti zamijenjena sličnim iz kategorije ANSI ili OEM za taj isti jezik.

Nakon što spremite dokument u Notepad++ u kodiranju koje vam je potrebno ili otvorite dokument sa stranice za uređivanje, možete vidjeti njegov naziv u donjem desnom kutu uređivača:

Kako bi izbjegli rednecks, osim gore opisanih radnji, bit će korisno napisati u zaglavlju izvorni kod sve stranice stranice informacije o ovom kodiranju, tako da ne dođe do zabune na poslužitelju ili lokalnom hostu.

Općenito, svi hipertekstualni označni jezici osim Html-a koriste posebnu xml deklaraciju koja određuje kodiranje teksta.

Prije raščlambe koda, preglednik zna koja se verzija koristi i kako točno treba interpretirati znakovne kodove tog jezika. Ali ono što je vrijedno pažnje je da ako spremite dokument u zadanom Unicodeu, onda se ova xml deklaracija može izostaviti (kodiranje će se smatrati UTF-8 ako nema BOM ili UTF-16 ako postoji BOM).

U slučaju dokumenta na Html jeziku, kodiranje se koristi za označavanje Meta element, koji je napisan između uvodne i završne oznake Head:

... ...

Ovaj unos se dosta razlikuje od onog usvojenog godine, ali je potpuno u skladu s novim koji se postupno uvodi HTML standard 5, i bit će 100% ispravno shvaćen svim preglednicima koji se trenutno koriste.

U teoriji, bilo bi bolje postaviti Meta element koji označava kodiranje Html dokumenta što je više moguće u zaglavlju dokumenta tako da u trenutku susreta s prvim znakom u tekstu koji nije iz osnovnog ANSI-ja (koji se uvijek čitaju ispravno iu bilo kojoj varijanti), preglednik bi već trebao imati informacije o tome kako interpretirati kodove tih znakova.

Sretno ti! Vidimo se uskoro na stranicama bloga

Moglo bi vas zanimati

Što su URL adrese, kako se razlikuju apsolutne i relativne veze za web mjesto?
OpenServer - moderan lokalni poslužitelj te primjer njegove upotrebe za instalaciju WordPressa na računalo
Što je Chmod, koje dozvole dodijeliti datotekama i mapama (777, 755, 666) i kako to učiniti putem PHP-a
Yandex pretraživanje po web-mjestu i online trgovini

Početkom 90-ih, kada je došlo do raspada SSSR-a i kada su granice Rusije bile otvorene, počeli smo primati softverski proizvodi Zapadna proizvodnja. Naravno, svi su govorili engleski. Istovremeno se počeo razvijati i Internet. Problem rusifikacije resursa i programa postao je akutan. Tada je izumljeno rusko Windows kodiranje 1251. Omogućuje vam ispravan prikaz slova slavenskih abeceda:

  • Ruski;
  • Ukrajinski;
  • bjeloruski;
  • srpski;
  • bugarski;
  • makedonski

Razvoj je provelo rusko predstavništvo Microsofta zajedno s tvrtkama Dialog i Paragraph. Osnova je preuzeta iz razvoja koje smo sami napisali, a koji su 1990.-1991. bili u optjecaju među rijetkim IT ideolozima u Rusiji.

Do danas, više od univerzalna metoda kodirati znakove - UTF-8 (Unicode). Predstavlja gotovo 90% svih softverskih i web izvora. Windows 1251 koristi se u 1,6% slučajeva. (Informacije iz Anketa o web tehnologiji)

Kodiranje web stranice utf 8 ili windows 1251?

Da biste odgovorili na ovo pitanje, morate malo razumjeti što je kodiranje i kako se razlikuju. Tekstualne informacije, kao i svaka druga informacija, pohranjene su u računalu u kodiranom obliku. Lakše nam je o tome razmišljati kao o brojevima. Svaki znak može zauzimati jedan ili više bajtova. Windows 1251 je kodiranje od jednog bajta, dok je UTF-8 kodiranje od osam bajta. To znači da se u sustavu Windows 1251 može kodirati samo 256 znakova.
Budući da se sve svodi na binarni sustav, a bajt ima 8 bitova (0 i 1), maksimalni broj kombinacija je 28 = 256. Unicode vam omogućuje predstavljanje puno većeg broja znakova, a može se dodijeliti i veća veličina za svakoga.

Ovdje slijede prednosti Unicodea:

  1. U zaglavlju stranice trebate navesti kodiranje koje se koristi. U protivnom će se umjesto simbola prikazati "ludi simboli". A Unicode je standardan za sve preglednike - oni ga hvataju "u letu" kao što je instaliran prema zadanim postavkama.
  2. Simboli stranice ostat će isti bez obzira u kojoj se zemlji resurs učitava. To ne ovisi o geografskoj lokaciji poslužitelja, već o jeziku softvera klijentskih radnih stanica. Stanovnik Portugala očito koristi tipkovnicu i sav softver, uključujući operativni sustav, na svom materinjem jeziku. Njegovo računalo najvjerojatnije uopće nema Windows 1251. A ako je to slučaj, tada se stranice na ruskom neće otvoriti ispravno. Unicode je, zauzvrat, "ugrađen" u bilo koji OS na bilo kojem jeziku.
  3. UTF-8 dopušta kodiranje velika količina likovi. Na ovaj trenutak Koristi se 6 bajtova od 8, a ruski znakovi su kodirani u dva bajta.
    Zato je bolje koristiti univerzalno kodiranje nego visoko specijalizirano, koje se koristi samo u slavenskim zemljama.

Windows 1251 tablica kodiranja

Za programere i programere web stranica ponekad je potrebno znati brojeve znakova. U tu svrhu koriste se posebne tablice kodiranja. Ispod je tablica za Windows 1251.

Što učiniti ako se izgubi kodiranje naredbenog retka?

Ponekad se možete susresti sa situacijom u kojoj se u naredbenom retku prikazuju čudni znakovi umjesto ruskih. To znači da postoji problem kodiranja naredbi Windows žice 7. Zašto 7? Jer, počevši od verzije 8 koristi se UTF-8, a u verziji 7 i Windows 1251.
Naredba chcp 866 može pomoći u rješavanju problema u jednom trenutku. Trenutna sesija će raditi ispravno. Ali da biste radikalno popravili pogrešku, trebat će vam registar.


Ugodan dan!

Windows-1251 - skup znakova i kodiranje, što je standardno 8-bitno kodiranje za sve ruske verzije Microsoft Windows. Ovo kodiranje je vrlo popularno u istočnoeuropskim zemljama. Windows-1251 se povoljno razlikuje od ostalih 8-bitnih ćiriličnih kodiranja (kao što su CP866, KOI8-R i ISO 8859-5) prisutnošću gotovo svih znakova koji se koriste u tradicionalnoj ruskoj tipografiji za čisti tekst(samo znak za naglasak nedostaje). Ćirilični znakovi poredani su abecednim redom.
Windows-1251 također sadrži sve znakove za jezike bliske ruskom: bjeloruski, ukrajinski, srpski, makedonski i bugarski.
U praksi se to pokazalo dovoljnim da se Windows-1251 kodiranje učvrsti na internetu do širenja UTF-8.

Windows-1251 Tablica kodnih znakova

proHexSimbol proHexSimbol
000 00 NOP 128 80 Ђ
001 01 SOH 129 81 Ѓ
002 02 STX 130 82
003 03 ETX 131 83 ѓ
004 04 EOT 132 84
005 05 ENQ 133 85
006 06 ACK 134 86
007 07 BEL 135 87
008 08 B.S. 136 88
009 09 TAB 137 89
010 0ALF 138 8AЉ
011 0BVT 139 8B
012 0CFF 140 8CЊ
013 0DCR 141 8DЌ
014 0ETAKO 142 8EЋ
015 0FSI. 143 8FЏ
016 10 DLE 144 90 ђ
017 11 DC1 145 91
018 12 DC2 146 92
019 13 DC3 147 93
020 14 DC4 148 94
021 15 N.A.K. 149 95
022 16 SYN 150 96
023 17 ETB 151 97
024 18 LIMENKA 152 98
025 19 E.M. 153 99
026 1APOD 154 9Aљ
027 1BESC 155 9B
028 1CFS 156 9Cњ
029 1DG.S. 157 9Dќ
030 1ER.S. 158 9Eћ
031 1FNAS 159 9Fџ
032 20 SP 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 OGLAS­
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 B.A.є
059 3B; 187 BB»
060 3C< 188 prije Kristaј
061 3D= 189 BDЅ
062 3E> 190 BITIѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 U
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 I
071 47 G 199 C7 Z
072 48 H 200 C8 I
073 49 ja 201 C9 Y
074 4AJ 202 C.A. DO
075 4BK 203 C.B. L
076 4CL 204 CC M
077 4DM 205 CD N
078 4EN 206 n.e. OKO
079 4FO 207 CF P
080 50 P 208 D0 R
081 51 Q 209 D1 S
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 ja
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 i
103 67 g 231 E7 h
104 68 h 232 E8 I
105 69 ja 233 E9 th
106 6Aj 234 E.A. Do
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 str 240 F0 R
113 71 q 241 F1 S
114 72 r 242 F2 T
115 73 s 243 F3 na
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 g 249 F9 sch
122 7Az 250 FA. ʺ
123 7B{ 251 FB s
124 7C| 252 F.C. b
125 7D} 253 F D uh
126 7E~ 254 F.E. Yu
127 7FDEL 255 FF ja

Opis posebnih (kontrolnih) znakova

Izvorno su kontrolni znakovi ASCII tablice (raspon 00-31, plus 127) bili dizajnirani za kontrolu hardverskih uređaja kao što su teletypewriteri, unos podataka na bušenu vrpcu itd.
Kontrolni znakovi (osim vodoravne kartice, pomicanja retka i povratka na početak reda) ne koriste se u HTML dokumentima.

Posebni (kontrolni) znakovi

Kodirati Opis
NUL, 00Nula, prazna
SOH, 01Početak naslova
STX, 02Start of TeXt, početak teksta
ETX, 03Kraj teksta, kraj teksta
EOT, 04Kraj prijenosa, kraj prijenosa
ENQ, 05Raspitajte se. Molim potvrdite
ACK, 06Priznanje. potvrđujem
BEL, 07Zvono, zovi
BS, 08Backspace, povratak jedan znak unatrag
TAB, 09Kartica, horizontalna kartica
LF, 0ALine Feed, line feed
Danas se u većini programskih jezika označava kao \n
VT, 0BOkomita kartica, okomita tablica
FF, 0CFeed obrasca, feed stranice, nova stranica
CR, 0DPovrat prtljage
Danas se u većini programskih jezika označava kao \r
PA,0EShift Out, promijenite boju vrpce s tintom u uređaju za ispis
SI, 0FShift In, vraća boju vrpce s tintom u uređaju za ispis
DLE, 10Data Link Escape, prebacivanje kanala na prijenos podataka
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Kontrola uređaja, simboli kontrole uređaja
NAK, 15Negativna potvrda, ne potvrđujem
SYN, 16Sinkronizacija. Simbol sinkronizacije
ETB, 17Kraj tekstualnog bloka, kraj tekstualnog bloka
MOŽE, 18Odustani, otkazivanje prethodno poslanog
EM, 19Kraj medija
SUB, 1AZamjena, zamjena. Postavlja se umjesto simbola čije je značenje izgubljeno ili oštećeno tijekom prijenosa
ESC, 1BEscape Control Sequence
FS, 1CRazdjelnik datoteka, razdjelnik datoteka
GS, 1DRazdjelnik grupa
RS, 1ERazdjelnik zapisa, razdjelnik zapisa
SAD, 1FRazdjelnik jedinica
DEL, 7FBrisanje, brisanje zadnjeg znaka.

Kao što je poznato, Windows 10 podržava instalaciju jezičnih paketa, koji se mogu koristiti za promjenu lokalizacije sučelja operativnog sustava. Koncept sistemskog jezika vrlo je usko povezan s ovim. Jezik sustava nije onaj koji je dodan pomoću jezičnog paketa, već onaj koji je odabran prilikom instalacije samog sustava. Ako radite na korporativnom računalu čiji je jezik promijenjen instaliranjem MUI -packages, možda biste željeli znati koji je jezik izvorno korišten u sustavu.

Postoji nekoliko načina za određivanje jezika sustava.

Pogledajmo ih redom.

Korištenje uslužnog programa konzole DISM

Pokreni kao administrator naredbeni redak i izvršiti u njemu dism naredba/online/get-intl. Za nekoliko sekundi dobit ćete rezultat.

Obratite pozornost na parametar "Zadani jezik korisničkog sučelja" . Njegovo značenje bit će jezik sustava.

Korištenje PowerShell konzole

Pokrenite konzolu kao administrator i pokrenite naredbu ::InstalleduICulture .

Vrijednost parametra DisplayName pokazat će na jezik sustava. Također obratite pozornost na parametar LCID, sadrži jezični kod napisan na Windows registar(Pogledaj ispod).

Korištenje uređivača registra i tablice dekodiranja

Tim regedit otvorite uređivač registra i proširite granu

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language

U desnom stupcu prozora uređivača pronađite parametar niza (on je na samom dnu) i vidjeti njegovo značenje.

Predstavljen je četveroznamenkastim kodom, za čije dešifriranje trebate koristiti tablicu dekodiranja na web stranici MSDN. U našem primjeru kod 0419 odgovara ruskom jeziku.