Acasă flori perene Decodificarea caracterelor în rusă. Ce este codarea ANSI și cu ce se mănâncă? Afișarea incorectă a simbolurilor

Decodificarea caracterelor în rusă. Ce este codarea ANSI și cu ce se mănâncă? Afișarea incorectă a simbolurilor

Codificarea site-ului (Encoding) este o corespondență a unei serii de numere cu caractere (cifre, litere, semne și alte caractere speciale). Cele mai comune codificări sunt ASCII împreună cu Unicode UTF-8 și Windows-1251. În conținut, o metaetichetă specială este responsabilă de codificare: , care setează un anumit tip de cod pentru pagini. În acest caz, este UTF-8 unicode.

În cuvinte simple, acestea sunt caractere și numere standard care corespund unui anumit tip de set de litere scrise, numere, semne și alte elemente. Cel mai adesea, pe site se folosește un singur tip de codificare, dar există excepții când pot fi setate mai multe codificări simultan. Cu toate acestea, acest lucru poate duce la afișarea incorectă a întregii resurse web. Multe site-uri folosesc standardul de codificare - UTF-8, deoarece acest tip de cod este acceptat de multe browsere, motoare de căutare, servere și alte platforme cunoscute. Foarte des există situații în care codificarea specificată pe site nu se potrivește cu cea setată pe server. Motivul principal pentru acest fenomen este că furnizorul nu acceptă tipul de codificare furnizat, drept urmare trimite „propriul său”, ceea ce duce de fapt la afișarea incorectă a informațiilor. O codificare este un tabel care descrie orice corespondență între un anumit caracter și un număr. Fiecare simbol care este vizibil pe site reprezintă doar un set de biți pentru computer (un anumit set de zerouri și altele).

Tipuri de codificări ale site-urilor

În total, există mai multe tipuri de codificări în lumea Internetului:

  • ASCII este prima codificare care a fost adoptată de Institutul Național American de Standarde Mondiale. Pentru codificare au fost folosiți doar 7 biți, unde pentru prima dată sunt plasate 128 de valori în alfabetul englez, precum și toate numerele, semnele și simbolurile. Această codificare nu este universală și a fost folosită cel mai des pe site-urile în limba engleză.
  • Chirilic este o versiune cu adevărat domestică. Codificarea a folosit a doua parte a tabelului de cod principal, sau mai degrabă, caractere de la 129 la 256. Folosit pe site-uri și bloguri în limba rusă.
  • Codificările 1250-1258 (sisteme MS Windows și Windows) sunt codificări standard pe 8 biți care au apărut imediat după lansarea binecunoscutului sistem de operare Microsoft Windows. Numerele de la 1250 la 1258 sunt direcționate către limba folosită de codificare. 1250 sunt limbile Europei Centrale, iar 1251 sunt pentru alfabetul chirilic.
  • KOI8 - reprezintă codul de schimb de informații pe 8 biți. Standardele chirilice rusești sunt de obicei folosite în Unix și sisteme similare, unde standardul KOI-7, KOI8-R și KOI8-U este în vigoare.
  • Unicode (numele original Unicode) este un standard de codificare a caracterelor binecunoscut care vă permite să descrieți caracterele literalmente din toate limbile lumii. Deseori notat cu „U+xxxx”, unde „xxxx” sunt valori hexazecimale. Cea mai comună familie a acestei codificări este UTF (Unicode-Transformation Format), adică UTF-8, 16 și 32.

Fiecare vizualizare individuală poate fi utilizată direct pe orice site.

Codări universale și populare

Până în prezent, cea mai populară și cunoscută codificare este UTF-8 și datorită acesteia este posibil să se asigure compatibilitatea maximă cu toate sistemele vechi care foloseau tipurile obișnuite de caractere pe 8 biți. Codificarea UTF-8 include majoritatea site-urilor care sunt pe Internet, iar acest standard este considerat universal. UTF-8 acceptă atât chirilic, cât și latină.

Bună ziua, dragi cititori ai blogului. Astăzi vom vorbi cu tine despre de unde provin krakozyabr-urile pe site și în programe, ce codificări de text există și care ar trebui folosite. Să aruncăm o privire mai atentă asupra istoriei dezvoltării lor, pornind de la ASCII de bază, precum și versiunile sale extinse CP866, KOI8-R, Windows 1251 și terminând cu codificările moderne ale Unicode Consortium UTF 16 și 8.

Pentru unii, aceste informații pot părea redundante, dar ați ști câte întrebări primesc în special cu privire la krakozyabrs (un set de caractere imposibil de citit). Acum voi avea ocazia să trimit pe toată lumea la textul acestui articol și să-mi caut în mod independent stâlpii. Ei bine, pregătiți-vă să absorbiți informațiile și încercați să urmați cursul poveștii.

ASCII - codificarea de bază a textului pentru latină

Dezvoltarea codificărilor de text a avut loc concomitent cu formarea industriei IT, iar în acest timp au reușit să sufere destul de multe schimbări. Din punct de vedere istoric, totul a început cu EBCDIC, care era destul de disonantă în pronunția rusă, ceea ce a făcut posibilă codificarea literelor alfabetului latin, cifrelor arabe și semnelor de punctuație cu caractere de control.

Dar totuși, punctul de plecare pentru dezvoltarea codificărilor moderne de text ar trebui considerat celebrul ASCII(Codul standard american pentru schimbul de informații, care în rusă este de obicei pronunțat „aski”). Descrie primele 128 de caractere utilizate cel mai frecvent de utilizatorii englezi - , cifre arabe și semne de punctuație.

Chiar și în aceste 128 de caractere descrise în ASCII, au existat câteva caractere de serviciu, cum ar fi paranteze, bare, asteriscuri etc. De fapt, le puteți vedea singur:

Aceste 128 de caractere din versiunea originală ASCII au devenit standardul, iar în orice altă codificare le veți întâlni cu siguranță și vor sta în această ordine.

Dar adevărul este că, cu ajutorul unui octet de informații, este posibil să se codifice nu 128, ci până la 256 de valori diferite (două la puterea lui opt este egală cu 256), deci după versiunea de bază a Asuka, o serie întreagă de codificări ASCII extinse, în care, pe lângă 128 de caractere de bază, a fost posibilă și codificarea simbolurilor codificării naționale (de exemplu, rusă).

Aici, probabil, merită să spunem puțin mai multe despre sistemele de numere care sunt folosite în descriere. În primul rând, după cum știți cu toții, un computer funcționează doar cu numere în sistemul binar, și anume cu zerouri și unu („algebră booleană”, dacă cineva a studiat la un institut sau la școală). , fiecare dintre acestea fiind un doi în grad, începând de la zero și până la doi în al șaptelea:

Nu este greu de înțeles că pot exista doar 256 dintre toate combinațiile posibile de zerouri și unu într-o astfel de construcție.Conversia unui număr din binar în zecimal este destul de simplă. Trebuie doar să aduni toate puterile a doi, peste care există unele.

În exemplul nostru, acesta este 1 (2 la puterea lui zero) plus 8 (două la puterea lui 3), plus 32 (doi la a cincea), plus 64 (la a șasea), plus 128 (la a șaptea) . Total obține 233 în notație zecimală. După cum puteți vedea, totul este foarte simplu.

Dar dacă aruncați o privire mai atentă la tabelul cu caractere ASCII, veți vedea că acestea sunt reprezentate în codificare hexazecimală. De exemplu, „asteriscul” corespunde în Asci cu numărul hexazecimal 2A. Probabil știți că, pe lângă cifrele arabe, sistemul numeric hexazecimal folosește și litere latine de la A (însemnând zece) la F (însemnând cincisprezece).

Ei bine, pentru convertiți binar în hexazecimal recurge la următoarea metodă simplă și vizuală. Fiecare octet de informații este împărțit în două părți de patru biți, așa cum se arată în captura de ecran de mai sus. Acea. în fiecare jumătate de octet, doar șaisprezece valori pot fi codificate în cod binar (de la două până la a patra putere), care poate fi ușor reprezentat ca un număr hexazecimal.

Mai mult, în jumătatea stângă a octetului, va fi necesar să numărați din nou gradele, începând de la zero și nu așa cum se arată în captura de ecran. Drept urmare, prin calcule simple, obținem că numărul E9 este codificat în captură de ecran. Sper că cursul raționamentului meu și soluția acestui puzzle s-au dovedit a fi clare pentru tine. Ei bine, acum să continuăm, de fapt, să vorbim despre codificări de text.

Versiuni extinse de Asuka - codificări CP866 și KOI8-R cu pseudografice

Așadar, am început să vorbim despre ASCII, care a fost, parcă, punctul de plecare pentru dezvoltarea tuturor codificărilor moderne (Windows 1251, Unicode, UTF 8).

Inițial, conținea doar 128 de caractere din alfabetul latin, cifre arabe și altceva, dar în versiunea extinsă a devenit posibilă utilizarea tuturor celor 256 de valori care pot fi codificate într-un octet de informații. Acestea. a devenit posibil să adăugați caractere din literele limbii dumneavoastră la Asci.

Aici va fi necesar să divagam încă o dată pentru a explica - De ce ai nevoie de codificare? texte și de ce este atât de important. Caracterele de pe ecranul computerului sunt formate pe baza a două lucruri - seturi de forme vectoriale (reprezentări) de tot felul de caractere (sunt în fișiere co) și un cod care vă permite să scoateți din acest set de forme vectoriale ( font) exact caracterul pe care trebuie să-l inserați în Locul corect.

Este clar că fonturile sunt responsabile pentru formele vectoriale în sine, dar sistemul de operare și programele utilizate în el sunt responsabile pentru codificare. Acestea. orice text de pe computer va fi un set de octeți, fiecare dintre care codifică un singur caracter al acestui text.

Programul care afișează acest text pe ecran (editor de text, browser etc.), atunci când parsează codul, citește codificarea următorului caracter și caută forma vectorială corespunzătoare în fișierul font dorit care este conectat pentru a afișa acest text document. Totul este simplu și banal.

Aceasta înseamnă că pentru a codifica orice caracter de care avem nevoie (de exemplu, din alfabetul național), trebuie îndeplinite două condiții - forma vectorială a acestui caracter trebuie să fie în fontul folosit, iar acest caracter ar putea fi codificat în codificări ASCII extinse. într-un octet. Prin urmare, există o mulțime de astfel de opțiuni. Numai pentru codificarea caracterelor limbii ruse, există mai multe varietăți de Aska extins.

De exemplu, inițial a existat CP866, în care se putea folosi caracterele alfabetului rus și era o versiune extinsă a ASCII.

Acestea. partea superioară a coincis complet cu versiunea de bază a lui Asuka (128 de caractere latine, numere și alte prostii), care este afișată în captura de ecran de mai sus, dar partea inferioară a tabelului cu codificare CP866 avea forma afișată în captura de ecran de mai jos. și a permis să codifice încă 128 de semne (litere rusești și tot felul de pseudografice acolo):

Vedeți, în coloana din dreapta, numerele încep cu 8, pentru că numerele de la 0 la 7 se referă la partea de bază ASCII (vezi prima captură de ecran). Acea. litera rusă „M” din CP866 va avea codul 9C (se află la intersecția rândului corespunzător cu 9 și a coloanei cu numărul C în sistemul numeric hexazecimal), care poate fi scris într-un octet de informații, iar dacă există un font potrivit cu caractere rusești, această literă fără probleme va fi afișată în text.

De unde aceasta suma? pseudografic în CP866? Chestia este că această codificare pentru textul rusesc a fost dezvoltată în acei ani blăniți, când nu exista o astfel de distribuție a sistemelor de operare grafice ca acum. Și în Dosa și în sistemele de operare cu text similare, pseudo-grafica a făcut posibilă diversificarea oarecum a designului textelor și, prin urmare, abundă în CP866 și toți ceilalți colegi din categoria versiunilor extinse ale Asuka.

CP866 a fost distribuit de IBM, dar în plus, au fost dezvoltate o serie de codificări pentru caractere rusești, de exemplu, același tip (ASCII extins) poate fi atribuit KOI8-R:

Principiul funcționării sale rămâne același cu cel al CP866 descris puțin mai devreme - fiecare caracter al textului este codificat de un singur octet. Captura de ecran arată a doua jumătate a tabelului KOI8-R, deoarece prima jumătate corespunde pe deplin cu Asuka de bază, care este afișată în prima captură de ecran din acest articol.

Printre caracteristicile codificării KOI8-R, se poate remarca faptul că literele rusești din tabelul său nu sunt în ordine alfabetică, așa cum, de exemplu, sa făcut în CP866.

Dacă vă uitați la prima captură de ecran (a părții de bază, care este inclusă în toate codificările extinse), veți observa că în KOI8-R literele rusești sunt situate în aceleași celule ale tabelului ca și literele consoanei alfabetului latin. cu ei din prima parte a tabelului. Acest lucru a fost făcut pentru comoditatea trecerii de la caracterele rusești la caractere latine, eliminând doar un bit (două la a șaptea putere sau 128).

Windows 1251 - versiunea modernă a ASCII și de ce krakozyabry se accesează cu crawlere

Dezvoltarea în continuare a codificărilor de text s-a datorat faptului că sistemele de operare grafică câștigau popularitate și nevoia de a folosi pseudografice în ele a dispărut în timp. Ca urmare, a apărut un întreg grup, care, în esență, erau încă versiuni extinse ale Asuka (un caracter text este codificat cu doar un octet de informații), dar fără utilizarea caracterelor pseudografice.

Ele aparțineau așa-numitelor codificări ANSI, care au fost dezvoltate de Institutul American de Standarde. În limbajul comun, numele chirilic a fost folosit și pentru varianta cu suport pentru limba rusă. Un exemplu în acest sens poate servi.

Se compară favorabil cu CP866 și KOI8-R utilizate anterior, deoarece locul simbolurilor pseudografice în el a fost luat de simbolurile lipsă ale tipografiei ruse (în afară de semnul de accent), precum și de simbolurile folosite în limbile slave apropiate de Rusă (ucraineană, belarusă etc.):

Datorită unei astfel de abundențe de codificări în limba rusă, producătorii de fonturi și producătorii de software au avut în mod constant o durere de cap, iar noi, dragi cititori, am scăpat adesea de notoriu krakozyabry când a existat confuzie cu versiunea folosită în text.

Foarte des au ieșit la trimiterea și primirea mesajelor prin e-mail, ceea ce a dus la crearea unor tabele de conversie foarte complexe, care, de fapt, nu puteau rezolva această problemă la rădăcină și de multe ori utilizatorii foloseau pentru corespondență pentru a evita notoriile krakozyabrs atunci când utilizați codificări rusești precum CP866, KOI8-R sau Windows 1251.

De fapt, krakozyabry care a apărut în locul textului rusesc a fost rezultatul utilizării incorecte a codificării acestei limbi, care nu corespundea celei în care mesajul text a fost codificat inițial.

De exemplu, dacă încercați să afișați caracterele codificate folosind CP866 folosind tabelul de coduri Windows 1251, atunci vor apărea aceleași krakozyabry (set de caractere fără sens), înlocuind complet textul mesajului.

O situație similară se întâmplă foarte des în cazul forumurilor sau blogurilor, când textul cu caractere rusești este salvat din greșeală în codificarea greșită, care este folosită implicit pe site, sau în editorul de text greșit care adaugă gag la codul care nu este vizibil pentru utilizatori. cu ochiul liber.

În cele din urmă, mulți oameni s-au săturat de o astfel de situație cu o mulțime de codificări și în mod constant ieșind din krakozyabry, existau condiții prealabile pentru crearea unei noi variante universale care să le înlocuiască pe toate cele existente și să rezolve în cele din urmă problema cu apariția textelor ilizibile. . În plus, a fost problema limbilor precum chineza, unde erau mult mai multe caractere ale limbii decât 256.

Unicode (Unicode) - codificări universale UTF 8, 16 și 32

Aceste mii de caractere ale grupului de limbi din Asia de Sud-Est nu au putut fi descrise în niciun fel într-un octet de informații, care a fost alocat pentru codificarea caracterelor în versiunile extinse de ASCII. Drept urmare, un consorțiu a sunat Unicode(Unicode - Unicode Consortium) cu cooperarea multor lideri din industria IT (cei care produc software, care codifică hardware, care creează fonturi) care au fost interesați de apariția unei codări universale de text.

Prima variantă care a fost lansată sub auspiciile Consorțiului Unicode a fost UTF-32. Numărul din numele codificării înseamnă numărul de biți care este utilizat pentru a codifica un caracter. 32 de biți reprezintă 4 octeți de informații care vor fi necesari pentru a codifica un singur caracter în noua codificare universală UTF.

Ca urmare, același fișier cu text, codificat în versiunea extinsă ASCII și în UTF-32, în acest din urmă caz ​​va avea o dimensiune (greutate) de patru ori mai mare. Acest lucru este rău, dar acum avem posibilitatea de a codifica folosind UTF numărul de caractere egal cu două la puterea de treizeci de secunde ( miliarde de caractere, care va acoperi orice valoare cu adevărat necesară cu o marjă uriașă).

Dar multe țări cu limbi ale grupului european nu aveau deloc nevoie să folosească un număr atât de mare de caractere în codificare, cu toate acestea, atunci când foloseau UTF-32, ar obține o creștere de patru ori a ponderii documentelor text. degeaba și, ca urmare, o creștere a volumului de trafic pe Internet și a volumului de date stocate. Este mult și nimeni nu și-ar putea permite o astfel de risipă.

Ca urmare a dezvoltării Unicode, UTF-16, care s-a dovedit a fi atât de reușit încât a fost acceptat ca spațiu de bază implicit pentru toate caracterele pe care le folosim. Folosește doi octeți pentru a codifica un caracter. Să vedem cum arată chestia asta.

În sistemul de operare Windows, puteți merge pe calea "Start" - "Programe" - "Accesorii" - "Utilități" - "Tabel de caractere". Ca rezultat, se va deschide un tabel cu forme vectoriale ale tuturor fonturilor instalate în sistemul dumneavoastră. Dacă selectați setul de caractere Unicode în „Opțiuni avansate”, puteți vedea pentru fiecare font în mod individual întreaga gamă de caractere incluse în acesta.

Apropo, făcând clic pe oricare dintre ele, îi puteți vedea dublu octet cod în format UTF-16, format din patru cifre hexazecimale:

Câte caractere pot fi codificate în UTF-16 folosind 16 biți? 65536 (două la puterea șaisprezece) și acest număr a fost adoptat ca spațiu de bază în Unicode. În plus, există modalități de a codifica cu acesta aproximativ două milioane de caractere, dar limitate la un spațiu extins de un milion de caractere de text.

Dar nici această versiune de succes a codificării Unicode nu a adus prea multe satisfacții celor care au scris, să zicem, programe doar în limba engleză, deoarece după trecerea de la versiunea extinsă de ASCII la UTF-16, greutatea documentelor s-a dublat (un octet pe un caracter în Asci și doi octeți pentru același caracter în UTF-16).

Asta e pentru satisfacția tuturor și a tuturor în consorțiul Unicode, s-a decis să se vină cu codificare de lungime variabilă. Se numește UTF-8. În ciuda celor opt din nume, are într-adevăr o lungime variabilă, adică. fiecare caracter text poate fi codificat într-o secvență de la unu până la șase octeți.

În practică, în UTF-8, se folosește doar intervalul de la unu la patru octeți, deoarece în spatele a patru octeți de cod, nimic nu este chiar teoretic posibil de imaginat. Toate caracterele latine din el sunt codificate pe un octet, la fel ca în vechiul ASCII.

În mod remarcabil, în cazul codificării numai în limba latină, chiar și acele programe care nu înțeleg Unicode vor citi în continuare ceea ce este codificat în UTF-8. Acestea. partea de bază a lui Asuka a trecut pur și simplu în această creație a Consorțiului Unicode.

Caracterele chirilice în UTF-8 sunt codificate pe doi octeți și, de exemplu, caracterele georgiane pe trei octeți. Consorțiul Unicode, după ce a creat UTF 16 și 8, a rezolvat principala problemă - acum avem fonturile au un singur spațiu de cod. Și acum producătorii lor îl pot completa doar cu forme vectoriale de caractere text pe baza punctelor forte și a capacităților lor. Acum chiar și în seturi.

În „Tabelul de caractere” de mai sus, puteți vedea că diferite fonturi acceptă un număr diferit de caractere. Unele fonturi bogate în Unicode pot fi foarte mari. Dar acum ele diferă nu prin faptul că au fost create pentru diferite codificări, ci prin faptul că producătorul fontului a umplut sau nu a umplut spațiul unic de cod cu una sau alta formă vectorială până la sfârșit.

Krakozyabry în loc de litere rusești - cum se remediază

Să vedem acum cum apar krakozyabras în loc de text sau, cu alte cuvinte, cum este aleasă codificarea corectă pentru textul rusesc. De fapt, este setat în programul în care creați sau editați același text sau codați folosind fragmente de text.

Pentru editarea și crearea fișierelor text, personal folosesc un foarte bun, după părerea mea, . Cu toate acestea, poate evidenția sintaxa a încă o sută de limbaje de programare și de marcare și are, de asemenea, capacitatea de a fi extins folosind plugin-uri. Citiți o recenzie detaliată a acestui minunat program la link-ul de mai jos.

În meniul de sus al Notepad ++ există un element „Codificări”, unde veți avea posibilitatea de a converti o opțiune existentă în cea folosită implicit pe site-ul dvs.:

În cazul unui site pe Joomla 1.5 și mai sus, precum și în cazul unui blog pe WordPress, pentru a evita apariția bug-urilor, alegeți opțiunea UTF8 fără BOM. Care este prefixul BOM?

Faptul este că, atunci când au dezvoltat codificarea UTF-16, din anumite motive au decis să-i atașeze un lucru precum capacitatea de a scrie un cod de caractere, atât în ​​secvență directă (de exemplu, 0A15), cât și invers (150A). . Și pentru ca programele să înțeleagă în ce secvență să citească codurile, a fost inventat BOM(Byte Order Mark sau, cu alte cuvinte, semnătură), care a fost exprimată prin adăugarea a trei octeți suplimentari chiar la începutul documentelor.

În codificarea UTF-8, consorțiul Unicode nu prevedea nicio BOM și, prin urmare, adăugarea unei semnături (acești trei octeți suplimentari cei mai notori la începutul documentului) împiedică pur și simplu unele programe să citească codul. Prin urmare, atunci când salvăm fișiere în UTF, trebuie să alegem întotdeauna opțiunea fără BOM (fără semnătură). Deci avanzi protejează-te de crawling krakozyabry.

În mod remarcabil, unele programe din Windows nu știu cum să facă acest lucru (nu pot salva text în UTF-8 fără BOM), de exemplu, același Windows Notepad notoriu. Salvează documentul în UTF-8, dar încă adaugă semnătura (trei octeți suplimentari) la începutul acestuia. Mai mult, acești octeți vor fi întotdeauna aceiași - citiți codul în secvență directă. Dar pe servere, din cauza acestui lucru mic, poate apărea o problemă - va ieși krakozyabry.

Prin urmare, în niciun caz nu utilizați notepad Windows obișnuit pentru editarea documentelor site-ului dvs., dacă nu doriți apariția krakozyabrov. Consider că editorul Notepad ++ deja menționat este cea mai bună și mai simplă opțiune, care practic nu are dezavantaje și constă doar din avantaje.

În Notepad++, atunci când selectați o codificare, veți avea opțiunea de a converti textul în codificare UCS-2, care este în mod inerent foarte apropiat de standardul Unicode. De asemenea, în Notepad va fi posibilă codificarea textului în ANSI, adică. în raport cu limba rusă, acesta va fi Windows 1251, pe care l-am descris deja puțin mai sus.De unde provin aceste informații?

Este scris în registrul sistemului dvs. de operare Windows - ce codificare să alegeți în cazul ANSI, care să alegeți în cazul OEM (pentru limba rusă va fi CP866). Dacă instalați o altă limbă implicită pe computer, atunci aceste codificări vor fi înlocuite cu altele similare din categoria ANSI sau OEM pentru aceeași limbă.

După ce salvați documentul în Notepad ++ în codificarea de care aveți nevoie sau deschideți documentul de pe site pentru editare, puteți vedea numele acestuia în colțul din dreapta jos al editorului:

Pentru a evita krakozyabrov, pe lângă acțiunile descrise mai sus, va fi util să scrieți informații despre această codificare în antetul său al codului sursă al tuturor paginilor site-ului, astfel încât să nu existe confuzii pe server sau pe gazda locală.

În general, în toate limbajele de marcare hipertext, cu excepția Html, este utilizată o declarație xml specială, care specifică codificarea textului.

Înainte de a analiza codul, browserul știe ce versiune este utilizată și cum trebuie să interpreteze exact codurile de caractere ale acelei limbi. Dar ceea ce este de remarcat, dacă salvați documentul în unicode implicit, atunci această declarație xml poate fi omisă (codificarea va fi considerată UTF-8 dacă nu există BOM sau UTF-16 dacă există o BOM).

În cazul unui document în limbaj HTML, codificarea este folosită pentru a specifica Element meta, care este scris între eticheta Head de deschidere și de închidere:

... ...

Această intrare este destul de diferită de cea din , dar este pe deplin compatibilă cu noul standard HTML 5 care este introdus încet, și va fi înțeles 100% corect de către orice browser utilizat în prezent.

În teorie, elementul Meta cu codificarea Html a documentului ar fi mai bine de pus cât mai sus posibil în antetul documentului astfel încât la momentul întâlnirii în textul primului caracter nu din ANSI de bază (care va fi întotdeauna citit corect și în orice variație), browserul ar trebui să aibă deja informații despre modul de interpretare a codurilor acestor caractere.

Multă baftă! Ne vedem curând pe site-ul paginilor blogului

S-ar putea să fiți interesat

Ce este o adresă URL, care este diferența dintre linkurile absolute și relative pentru un site
OpenServer - un server local modern și un exemplu de utilizare pentru a instala WordPress pe un computer
Ce este Chmod, ce permisiuni să atribuiți fișierelor și folderelor (777, 755, 666) și cum se face prin PHP
Căutare Yandex pe site și magazin online

Mai tarziu ASCII a fost extins (inițial nu a folosit toți cei 8 biți), așa că a devenit posibil să se utilizeze nu 128, ci 256 (2 până la 8) caractere diferite care pot fi codificate într-un octet de informații.
Această îmbunătățire a făcut posibilă adăugarea la codificare ASCII simboluri ale limbilor naționale ale diferitelor țări, pe lângă alfabetul latin deja existent.
Opțiuni de codare extinse ASCII sunt atât de multe pentru că există atât de multe limbi în lume. Cred că mulți dintre voi ați auzit de o astfel de codificare precum KOI8 (Cod de schimb de informații, 8 biți) - aceasta este și o codificare extinsă ASCII. KOI8 a inclus numere, litere din alfabetul latin și rus, precum și semne de punctuație, caractere speciale și pseudografice.

Codare ISO

Organizația Internațională de Standardizare a creat o gamă de codificări pentru diferite scripturi/limbi.

Codificări din seria ISO 8859

Codificare Descriere
ISO 8859-1 (latină-1) Latină extinsă, inclusiv caractere din majoritatea limbilor Europei de Vest (engleză, daneză, irlandeză, islandeză, spaniolă, italiană, germană, norvegiană, portugheză, romanșă, feroeză, suedeză, scoțiană (gaelică) și parțial olandeză, finlandeză, franceză), precum și unele limbi est-europene (albaneză) și africane (afrikaans, swahili). Latin-1 nu are semnul euro și litera majusculă Ÿ. Această pagină de coduri este considerată codificarea implicită pentru documentele HTML și mesajele de e-mail. Această pagină de coduri corespunde și primelor 256 de caractere Unicode.
ISO 8859-2 (latină-2) Latină extinsă, inclusiv caractere din limbile Europei Centrale și Europei de Est (bosniacă, maghiară, poloneză, slovacă, slovenă, croată, cehă). Latin-2, ca și Latin-1, nu are semnul euro.
ISO 8859-3 (latină-3) Latină extinsă, inclusiv caractere din limbile sud-europene (malteză, turcă și esperanto).
ISO 8859-4 (latină-4) Latină extinsă, inclusiv caractere din limbile nord-europene (limbile groenlandeză, estonă, letonă, lituaniană și sami).
ISO 8859-5 (latină/chirilic) Chirilic, inclusiv simboluri ale limbilor slave (belarusă, bulgară, macedoneană, rusă, sârbă și parțial ucraineană).
ISO 8859-6 (latina/araba) Simboluri folosite în arabă. Caracterele din alte limbi arabe nu sunt acceptate. Afișarea corectă a textului ISO 8859-6 necesită suport pentru scriere bidirecțională și forme de caractere sensibile la context.
ISO 8859-7 (latină/greacă) Simboluri ale limbii grecești moderne. Poate fi folosit și pentru a scrie texte grecești antice în ortografie monotonă.
ISO 8859-8 (latină/ebraică) Simboluri ebraice moderne. Folosit în două versiuni: cu ordine logică a caracterelor (necesită suport bidirecțional) și cu ordine vizuală a caracterelor.
ISO 8859-9 (latină-5) O variantă latină-1 care înlocuiește caracterele islandeze rar folosite cu cele turcești. Folosit pentru turcă și kurdă.
ISO 8859-10 (latină-6) Varianta latină-4, mai convenabilă pentru limbile scandinave.
ISO 8859-11 (latină/thailandeză) Simboluri în limba thailandeză.
ISO 8859-13 (latină-7) Varianta Latin-4, mai convenabilă pentru limbile baltice.
ISO 8859-14 (latină-8) Latină extinsă pentru a include caractere din limbile celtice, cum ar fi scoția (gaelica) și bretona.
ISO 8859-15 (latină-9) O variantă Latin-1 care înlocuiește caracterele rar utilizate cu cele necesare pentru a accepta pe deplin finlandeză, franceză și estonă. În plus, semnul euro a fost adăugat la Latin-9.
ISO 8859-16 (latină-10) Latină extinsă, inclusiv caractere din Europa de Sud și de Est (albaneză, maghiară, italiană, poloneză, română, slovenă, croată), precum și unele limbi vest-europene (irlandeză în noua ortografie, germană, finlandeză, franceză). La fel ca Latin-9, semnul euro a fost adăugat la Latin-10.

Pentru documentele în engleză și în majoritatea celorlalte limbi vest-europene, codificarea este acceptată pe scară largă ISO-8859-1.

În HTML ISO-8859-1 este codarea implicită (în XHTML și în HTML5, codificarea implicită este UTF-8).
Când utilizați o altă codificare a paginii decât ISO-8859-1, trebuie să specificați acest lucru în etichetă .

Pentru HTML4:

Pentru HTML5:

Un exemplu de codificare ANSI este binecunoscutul Windows-1251.

Windows-1251 se compară favorabil cu alte codificări chirilice pe 8 biți (cum ar fi CP866 și ISO 8859-5) prin prezența aproape tuturor caracterelor utilizate în tipografia rusă pentru text simplu (lipsește doar accentul). De asemenea, conține toate caracterele pentru alte limbi slave: ucraineană, belarusă, sârbă, macedoneană și bulgară.
Următoarele sunt valorile zecimale ale caracterelor de codificare Windows-1251.

Pentru a afișa caractere de tabel într-un document HTML, utilizați următoarea sintaxă:

& + cod + ;

Codificare Windows-1251 (CP1251)

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

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Љ
409

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

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

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

A.

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

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

B6
·
B7
yo
451

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

C.
DAR
410
B
411
ÎN
412
G
413
D
414
E
415
F
416
W
417
ȘI
418
Y
419
LA
41A
L
41B
M
41C
H
41D
DESPRE
41E
P
41F

D.
R
420
DIN
421
T
422
La
423
F
424
X
425
C
426
H
427
W
428
SCH
429
Kommersant
42A
S
42B
b
42C
E
42D
YU
42E
eu
42F

E.
dar
430
b
431
în
432
G
433
d
434
e
435
bine
436
h
437
Și
438
al
439
la
43A
l
43B
m
43C
n
43D
despre
43E
P
43F

F.
R
440
din
441
T
442
la
443
f
444
X
445
c
446
h
447
SH
448
SCH
449
b
44A
s
44B
b
44C
uh
44D
Yu
44E
eu
44F

codificări UNICODE

Unicode (ing. Unicode) este un standard de codificare a caracterelor care vă permite să reprezentați caracterele aproape tuturor scripturilor din lume și caracterele speciale. Caracterele reprezentate în Unicode sunt codificate ca numere întregi fără semn. Unicode are mai multe forme pentru reprezentarea caracterelor pe un computer: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) și UTF-32 (UTF-32BE, UTF-32LE). (format de transformare Unicode engleză - UTF).
UTF-8 este o codificare comună în prezent, care și-a găsit o aplicație largă în sistemele de operare și spațiul web. Textul format din caractere Unicode mai mici de 128 (zona de cod U+0000 până la U+007F) conține caractere setate ASCII cu codurile corespunzătoare. Urmează zone de caractere ale diferitelor scenarii, semne de punctuație și simboluri tehnice. Sub caractere chirilice sunt alocate zone de caractere cu coduri de la U + 0400 la U + 052F, de la U + 2DE0 la U + 2DFF, de la U + A640 la U + A69F.

Codificare UTF-8 este universal și are o rezervă impresionantă pentru viitor. Acest lucru îl face cea mai convenabilă codificare pentru utilizare pe web.

Înainte de a răspunde la întrebarea ce este codificarea ANSI Windows, să răspundem mai întâi la o altă întrebare: „Ce este o codificare în general?”

Fiecare computer, fiecare sistem folosește un anumit set de caractere, în funcție de limba folosită de utilizator, de competențele sale profesionale și de preferințele personale.

Definiție generală de codificare

Deci, în rusă, 33 de caractere sunt folosite pentru a desemna literele, în engleză - 26. De asemenea, 10 cifre sunt folosite pentru numărare (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) și unele speciale caractere, minus , spațiu, punct, procent și așa mai departe.

Fiecărui dintre aceste caractere i se atribuie un număr de serie folosind tabelul de coduri. De exemplu, literei „A” i se poate atribui numărul 1; „Z” - 26 și așa mai departe.

De fapt, un număr care reprezintă un caracter ca număr întreg este considerat un cod de caractere, iar o codificare este, respectiv, un set de caractere dintr-un astfel de tabel.

Bogăția varietății de tabele de cod

În acest moment, există un număr destul de mare de codificări și tabele de coduri utilizate de diferiți specialiști: acesta este ASCII, dezvoltat în 1963 în America și Windows-1251, care a fost recent popular datorită Microsoft, KOI8-R și Guobiao - și multe, multe altele, iar procesul apariției și morții lor continuă până în zilele noastre.

Dintre această listă uriașă, așa-numita codificare ANSI iese în evidență în special.

Faptul este că, la un moment dat, Microsoft a creat un întreg set de pagini de cod:

Toate au primit numele general al tabelului de codificare ANSI sau al paginii de cod ANSI.

Un fapt interesant: unul dintre primele tabele de coduri a fost ASCII, creat în 1963 de American National Standards Institute (American National Standards Institute), prescurtat ANSI.

Printre altele, această codificare conține și caractere neprintabile, așa-numitele „secvențe de evacuare”, sau ESC-uri, unice pentru toate tabelele de caractere, adesea incompatibile între ele. Cu o utilizare pricepută, totuși, v-au permis să ascundeți și să restaurați cursorul, să-l mutați dintr-o poziție în text în alta, să setați file, să ștergeți o parte a ferestrei terminalului în care lucrați, să schimbați formatarea textului de pe ecran și schimbați culoarea (sau chiar desenați și serviți semnale sonore!). În 1976, apropo, acesta a fost un ajutor destul de bun pentru programatori. Apropo, un terminal este un dispozitiv necesar pentru introducerea și ieșirea informațiilor. În acele vremuri îndepărtate, era un monitor și o tastatură conectate la un computer (calculator electronic).

Afișarea incorectă a simbolurilor

Din păcate, în viitor, un astfel de sistem a provocat numeroase defecțiuni în sisteme, afișând așa-numitul krakozyabry în loc de poezii dorite, fluxuri de știri sau descrieri ale jocurilor tale preferate pe computer. - seturi de caractere lipsite de sens, imposibil de citit. Apariția acestor erori omniprezente a fost cauzată doar de o încercare de a afișa caractere codificate într-un tabel de codificare folosind altul.

Cel mai adesea, întâmpinăm în continuare consecințele citirii incorecte a acestei codificări pe Internet, atunci când browserul nostru, din anumite motive, nu poate determina cu exactitate care dintre codificările Windows-**** este utilizată în prezent, din cauza indicației web-ului. - expertul general de codare ANSI sau o codificare inițial incorectă, de exemplu, 1252 în loc de 1521. Mai jos este tabelul de codificare exact.

Tabel de codificare ANSI chirilic, Windows-1251

Mai mult decât atât, în 1986, ANSI s-a extins semnificativ, datorită lui Ian E. Davies, care a scris pachetul The Draw, care permite nu doar să folosești funcții de bază, din punctul nostru de vedere, ci și să desenezi complet (sau aproape complet) !

Rezumând

Astfel, se poate observa că codarea ANSI, de fapt, deși a fost o decizie destul de controversată, își păstrează poziția.

De-a lungul timpului, cu mâna ușoară a entuziaștilor, vechiul terminal ANSI a migrat chiar și pe telefoane!

Nou pe site

>

Cel mai popular