Declarație de codificare în html. Codificare HTML. În ce codificare să salvezi pagina web

Aproape fiecare nou venit în domeniul dezvoltării web, mai devreme sau mai târziu, întâmpină probleme de codificare în proiectele lor. Și apoi, conform scenariului scris, bombardarea forumurilor începe cu întrebări despre cum să-i învingi pe cei urâți " krakozyabry". Marea majoritate a problemelor sunt cunoscute de mult și sunt tratate destul de ușor, trebuie doar să știi" unde doare si ce pastila sa ia„. Prin urmare, îmi propun să analizăm cele mai populare erori din cauza cărora apare această problemă și este posibil ca recomandările mele să vă salveze de la noi ciocniri cu acestea.

În primul rând, recomand cu tărie asta toate documentele erau în aceeași codificare iar baza de date, și anume câmpurile cu date șir, avea aceeași codificare. Este setat atunci când baza de date este creată sau puteți specifica o comparație pentru fiecare câmp individual. Dacă creați o bază de date folosind phpMyAdmin, atunci nu ar trebui să existe dificultăți: fila „Băzuri de date” > în câmpul de sub „Creează o bază de date” introduceți numele viitoarei baze de date > lângă lista derulantă „Comparații”. Dacă creați o bază de date cu o interogare SQL, atunci scrieți ceva de genul acesta:

CREAȚI BAZĂ DE DATE DACĂ NU EXISTĂ `my_db_name` SET DE CARACTERE utf8 COLLATE utf8_general_ci;

Alegerea codificării depinde de tine, dar te-aș sfătui să alegi pentru documente " UTF-8 fără BOM"și comparație pentru bază" utf8_general_ci" (Unicode multilingv, fără diferențiere între majuscule și minuscule). Doar nu uitați să jucați în siguranță și să faceți un dump înainte de a manipula baza de date! Nu voi descrie aici ce este BOM, dar dacă este foarte figurativ și pe degete, atunci acesta este un marker atât de invizibil care a fost planificat să facă distincția între codificările UTF-16LE și UTF-16BE, dar din anumite motive s-a dovedit a fi nerevendicat și acum interferează cu web-dezvoltatorii trăiesc în pace;) BOM arată ca un simbol U+FEFF și se stabilește la începutul documentului. De ce este încă UTF-8? Iată cel puțin câteva motive... Puteți afișa cu ușurință atât limba chirilică, cât și un citat din poeziile sau caracterele chinezești ale lui Al-Mutanabbi pe ecran. Acest lucru se datorează faptului că în aceeași codificare Windows-1251 (cp1251) există doar 256 de caractere, în timp ce în UTF-8 sunt aproximativ o sută de mii, plus tot Simboluri speciale, pictograme, pictograme etc. Dacă intenționați să utilizați cereri ajax pe site-ul dvs., atunci acest lucru adaugă și un plus codării UTF-8, deoarece obiectul XMLHttpRequest este prieten cu această codificare și va trebui să pervertiți cu alții și uneori fără succes. Același sitemap (sitemap.xml) care este utilizat pentru indexare de către motoarele de căutare funcționează numai dacă acest fișier este creat cu codificare UTF-8. În plus, această codificare este standardul pentru ca multe funcții PHP să funcționeze și este standardul recomandat de W3C.

Când se creează un document nou, totul este clar, dar cum rămâne cu unul existent în care este de dorit să schimbi codificarea? Una dintre cele mai moduri simple este să deschideți documentul în Notepad++, selectați „ Codificări"și în listă" Convertiți în UTF-8 fără BOM„. Apoi, schimbați metaeticheta cu definiția de codificare:

Și pentru fișierele php, puteți seta antetul corespunzător, dar numai dacă fișierul nu este inclus într-un alt document, unde un astfel de antet va fi deja trimis mai devreme. Acest lucru se aplică atât antetului din metaeticheta, cât și celui trimis de funcția de antet:

Antet ("Content-Type: text/html; charset=utf-8");

Verificăm rezultatul în browser. Pot exista mai multe opțiuni aici:

  1. Totul este afișat bine și problema este închisă
  2. Datele scrise static sunt afișate în mod normal, dar datele din baza de date sunt încă aceleași „nebunești”
  3. Nimic nu s-a schimbat și codificarea rămâne strâmbă

Să începem cu ultimul punct. Proprietarii fericiți de servere dedicate sau VPS/VDS pot schimba codificarea directivei default_charsetîn fișierul de configurare php.ini. Pentru cei care nu au acces la php.ini sau au, dar trebuie să schimbe codificarea pentru un singur site, puteți utiliza fișierul .htaccess scriind următoarele în el:

# în principiu, linia de mai jos este suficientă: AddDefaultCharset UTF-8 # dar uneori pot fi necesare setări suplimentare: DefaultLanguage ru php_value default_charset "utf-8"

Fișierul .htaccess se află la rădăcina site-ului dvs. Dacă nu l-ați găsit acolo, atunci îl creăm noi înșine. Într-un bloc de note obișnuit, creați un document> " Salvează ca„> selectați tipul fișierului” Toate filele„> în câmpul „Nume fișier”, scrieți doar punctul și extensia „ .htaccess".

Să trecem la al doilea punct - dacă baza de date a fost transferată la codificarea dorită, dar datele din aceasta sunt afișate strâmb pe pagină. În primul rând, trebuie să vă asigurați că caracterele din baza de date în sine sunt afișate normal. Dacă codificarea nu a „plutește” acolo, atunci puteți fie să apelați din nou la fișierele de configurare, fie să faceți o solicitare imediat după conectarea la baza de date:

SETĂ NUMELE utf8;

* Scriu chiar eu textul cererii, dar de atunci Nu știu ce extensie folosiți pentru a lucra cu MySQL, vă voi arăta mai multe opțiuni:

// pentru mysql_* $db = mysql_connect("localhost", "nume utilizator", "parolă"); mysql_select_db("nume_db", $db); mysql_query("SET NAMES utf8"); // pentru versiunile PDO și php sub 5.3.6 $dbh = new PDO ("mysql:host=localhost;dbname=db_name", "username", "parola"); $dbh->exec("SET NAMES utf8"); // pentru versiunile PDO și php 5.3.6 și mai noi, poate fi specificat direct la crearea unui obiect $dbh = new PDO ("mysql:host=localhost;dbname=db_name;charset=utf8", "username", "parola" ); // sau $db = PDO nou ("mysql:host=localhost;dbname=db_name", "username", "parola", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); // pentru MySQLi $mysqli = new mysqli("localhost", "username", "parola", "db_name"); $mysqli->set_charset("utf8");

Deoarece am ridicat problema „mysql_* învechit”, vreau să vă atrag atenția asupra textului evidențiat cu roșu în documentația php. Merita gandit...
Dacă ați avut una dintre problemele standard, atunci urmând unii sau toți pașii de mai sus, problema cu codificarea va fi rezolvată pozitiv. Dar aș dori să menționez și câteva funcții care pot fi utile în situații non-standard. Puteți citi mai multe despre ele în documentație și voi da doar câteva exemple fără a intra în detalii:

Mb_internal_encoding() Cu această funcție, putem seta sau obține codificarea curentă a scriptului: mb_internal_encoding("UTF-8"); // setează echo mb_internal_encoding(); // nici un argument - obține mb_http_input() și mb_http_output() Două funcții care determină, setează sau obțin cererea HTTP sau codificarea caracterelor de ieșire: print_r(mb_http_input("I")); // determină codificarea datelor de intrare a cererii http mb_http_output("UTF-8"); // setează codificarea pentru ieşirea http echo mb_http_output(); // obține codificarea curentă a caracterelor din http-output iconv() Funcția convertește caracterele șirului în codificarea dorită: echo iconv("utf-8","cp1251","PџСЂРёРІРµС‚, РјРёСЂ!"); // Salut Lume! mb_convert_encoding() Funcția este similară cu iconv(), dar în opinia mea este mai bună, deoarece functioneaza mai adecvat. echo mb_convert_encoding("Привет, РјРёСЂ!","cp1251","utf-8"); // Salut Lume!

Și, în general, nu uitați de analogii funcțiilor pentru lucrul cu șiruri multiocteți. Cel mai adesea, au același nume, dar cu prefix mb_. Este destul de ușor să simți diferența. Luați, de exemplu, funcțiile strlen()și mb_strlen()și efectuați un experiment măsurând lungimea șirului:

// setează codificarea internă mb_internal_encoding("utf-8"); // nicio diferență pentru caracterele latine echo strlen("incode"); // 6 echo mb_strlen("incode"); // 6 // Dar cu chirilic dă afară - pichalka echo strlen("incode"); // 10 echo mb_strlen("incode"); // 5

Poate că cineva nu are nevoie să explice acest fenomen, dar pentru începători voi explica: chirilic este codificat în doi octeți și strlen() numără exact numărul de octeți dintr-un șir, nu numărul de litere. Deci, se dovedește că cinci caractere chirilice înmulțite cu două - obținem 10. Caracterele chinezești, dacă nu mă înșel, sunt în general codificate în trei octeți, așa că în viitor pentru astfel de cazuri, pentru a nu exista neînțelegeri, utilizați funcții adecvate.

Repet că aceste soluții sunt pentru cazuri comune și, în marea majoritate, rezolvă problema. Dar dacă aveți o situație în care toate aceste metode nu au funcționat, atunci scrieți aici, vom încerca să ne dăm seama împreună și să completam articolul cu o nouă „rețetă pentru o durere de cap”;) Lasă-mă să-mi iau concediu.

Vlad Merjevici

Metaetichetele sunt folosite pentru a stoca informații destinate browserelor și motoarelor de căutare. De exemplu, motoarele de căutare se referă la metaetichete pentru a prelua descrieri ale site-urilor, cuvinte cheie și alte date.

Meta-etichete pentru motoarele de căutare

Există o opinie în rândul dezvoltatorilor de site-uri web potrivit căreia metaetichetele scrise corect vă permit să vă ridicați în primele linii ale motoarelor de căutare. De fapt, acesta nu este cazul, nu vă veți ridica sus pe unele meta-etichete, dar conținutul executat fără succes al meta-etichetelor poate înrăutăți ratingul site-ului.

Două meta-etichete sunt concepute special pentru motoarele de căutare: descriere (descriere) și cuvinte cheie (cuvinte cheie). Unii webmasteri au adăugat cuvinte cheie la secțiunea de cuvinte cheie care nu au nimic de-a face cu subiectul site-ului, dar s-au bucurat de un oarecare succes în rândul vizitatorilor motoarelor de căutare. Cu toate acestea, după ceva timp, motoarele de căutare au învățat să facă față acestui fenomen și să verifice conținutul paginii web pentru conformitatea cu cuvintele cheie menționate.

Câteva principii legate de metaetichete:

  • nu includeți cuvinte cheie care nu sunt conținute în paginile dvs.;
  • nu repeta cuvintele cheie;
  • utilizați metaetichete în scopul propus;
  • faceți descrierea și lista de cuvinte cheie diferite pentru fiecare pagină a site-ului, ținând cont de conținut.

Descriere

Majoritatea motoarelor de căutare afișează conținutul câmpului de descriere (exemplul 1) atunci când afișează rezultatele căutării. Dacă această etichetă nu este pe pagină, atunci motorul de căutare va enumera pur și simplu primele cuvinte întâlnite pe pagină, care, de regulă, se dovedesc a nu fi foarte relevante.

Exemplul 1: Utilizarea descrierii

Descriere

Cuvinte cheie

Această metaetichetă a fost menită să descrie cuvintele cheie găsite pe pagină (exemplul 2). Dar, ca urmare a acțiunilor oamenilor care doresc să intre în primele linii ale motoarelor de căutare prin orice mijloace, acum este discreditat. Prin urmare, multe motoare de căutare omit acest parametru.

Exemplul 2: Utilizarea cuvintelor cheie

Cuvinte cheie

Cuvintele cheie pot fi enumerate separate prin spații sau virgule. Motoare de căutare ei înșiși vor aduce înregistrarea în forma pe care o utilizează.

Încărcare automată a paginilor

Pentru a încărca automat un document nou după o anumită perioadă de timp, utilizați instrucțiunea http-equiv="refresh" (exemplul 3).

. Pentru sistemul de operare Windows și chirilic, setul de caractere ia de obicei valoarea utf-8 sau windows-1251 (exemplul 4).

Exemplul 4. Selectarea codificării curente

Codificare

chirilic

Dacă nu este specificată nicio codificare, browserul încearcă să determine ce tip de caractere este folosit în document și selectează automat codificarea necesară. Browserul nu poate recunoaște întotdeauna cu acuratețe limba unei pagini web și, în unele cazuri, sugerează codarea vietnameză în loc de chirilic. Din acest motiv, este mai bine să specificați întotdeauna linia dată. Cu toate acestea, există circumstanțe în care specificarea unei codificări poate face un anumit rău. De exemplu, un server web utilizează automat codificarea datelor KOI-8, iar un browser care întâlnește parametrul charset=windows-1251 convertește textul în codificare Windows. Se dovedește o dublă schimbare de caractere, nu este ușor de citit un astfel de text. Din fericire, această problemă este deja de domeniul trecutului, în orice caz, poate fi ușor identificată și neutralizată la nivel de server.

Datele inițiale

  1. Să luăm ca exemplu site-ul nostru web: www.yourmaster.ru
  2. Toate textele site-ului sunt scrise și postate pe site în codificare „Windows-1251” iar browserul nu este informat despre acest lucru
  3. Serverul de găzduire trimite automat următorul antet în mod implicit:
    Tip de conținut: text/html; set de caractere=utf-8

Cu o asemenea discrepanță între codificarea reală a site-ului și informațiile despre codificarea din antetul trimise de server vor apărea probleme la afișarea paginilor site-ului în browserul vizitatorilor.

Codificarea corectă este foarte importantă!

Să încercăm să explicăm de ce.

Cu setările descrise mai sus, browserul utilizatorului nu va putea determina automat în ce codificare sunt scrise textele de pe site-ul vizualizat. Și cel mai probabil va afișa pagini în „krakozyabra” de necitit. Dacă întâmpinați o astfel de „neînțelegere” între browser și site-ul dvs., atunci trebuie să luați măsurile adecvate de urgență. În caz contrar, cel mai probabil va duce la o serie de probleme grave.

in primul rand, in astfel de conditii si setari ale site-ului, vizitatorii vor trebui in mod constant sa indice manual (prin selectie) browserului codificarea pentru afisarea site-ului. Acest lucru va necesita câteva clicuri suplimentare de mouse. Dar trebuie să recunoașteți, nu toată lumea va dori să facă 2-3 clicuri suplimentare de mouse doar pentru a vedea informațiile de pe pagină într-o formă care poate fi citită. Mai mult decât atât, mulți oameni nici măcar nu știu nu doar cum să schimbe codificarea afișajului în setările browserului, ci și ce este codificarea în general! Majoritatea vizitatorilor pot decide că site-ul este abandonat de proprietar sau piratat de cineva și vor încerca să nu mai revină la el.

În al doilea rând, în cazul definirii ambigue a codificării paginilor site-ului, Este posibil ca motoarele de căutare să nu indexeze corect conținutul text al site-ului.. Ceea ce, la rândul său, aduce probleme serioase cu traficul utilizatorilor din motoarele de căutare. Desigur, unele motoare de căutare pot încerca să determine cumva codificarea corectă din conținutul paginilor, dar acest lucru nu ușurează mult. De regulă, problema rămâne.

Sper că v-ați dat seama că problemele de codificare pot deveni un obstacol foarte serios în funcționarea site-ului, în dezvoltarea acestuia și atragerea vizitatorilor obișnuiți către acesta.

Pentru a evita astfel de probleme la codificare, trebuie să faceți setările corespunzătoare atât pe serverul de găzduire, cât și pe paginile site-ului.

Setarile site-ului ar trebui sa fie astfel incat orice browser sau orice robot de motor de cautare sa poata determina NEFORMAL in ce codificare sunt transmise informatiile de pe site!

Rezolvarea problemei cu codificarea site-ului

Am observat deja că toate textele de pe site-ul nostru sunt scrise și transmise browserului vizitatorului site-ului în codificarea „windows-1251”. Ce să facem pentru ca serverul care găzduiește site-ul nostru să transmită în antet informațiile corecte despre codificare către browser? hai sa mergem in ordine...

1. Pentru a nu depinde de setările serverului, pe toate paginile site-ului direct în codul HTML, folosind metaeticheta, scrieți în mod explicit următoarea directivă:

Trebuie plasat pe toate paginile, de preferință imediat după eticheta de deschidere . Acest lucru va permite browserului să selecteze automat codificarea corectă a afișajului conform directivei primite atunci când pagina este încărcată și interpretată! Numai această directivă ar trebui să fie suficientă pentru a ne rezolva problema. Dar așa a fost în teorie. Dar, în practică, această directivă nu este întotdeauna suficientă. În cazuri rare, dar se întâmplă ca browserul să aleagă nu pe cel specificat în directivă de pe pagina propriu-zisă ca codificare pentru afișarea paginii, ci pe cel care a fost transmis în antet de pe server! Și dacă informațiile de codificare specificate în două locuri nu se potrivesc, atunci problema poate rămâne.

2. Pentru ca serverul să returneze informațiile corecte despre codificare în răspunsul său, trebuie să creați un fișier în rădăcina site-ului dvs .htaccessși adăugați următoarea directivă la acesta:

AddDefaultCharset Windows-1251

Apoi serverul va continua să trimită antetul despre codificare în mod implicit, dar numele codificării se va potrivi cu cel în vigoare pe site-ul propriu-zis. Nu vor mai exista nepotriviri în nume.

Dacă dosarul .htaccess există deja pe serverul dvs., apoi adăugați direct directiva specificată, de exemplu, chiar la început. Și în niciun caz nu ștergeți inutil informațiile care există deja în el!

Asta e toată soluția la problemă. De acord, toate acestea nu sunt atât de dificile?! Dar este foarte util pentru a preveni tot felul de probleme cu notoria codificare.

Urmând succesiv cele două recomandări enumerate mai sus, browserele cu siguranță nu vor putea greși în alegerea automată a codificării corecte pentru afișarea informațiilor pe site-ul dvs. La urma urmei, am indicat fără ambiguitate, corect și chiar în două directive diferite, informații despre codificare!

Situații speciale

Situatia unu

Creatorii site-ului și, de cele mai multe ori, chiar clienții înșiși, încep să aducă în mod arbitrar și fără gânduri anumite îmbunătățiri site-ului, plasează texte după bunul plac și așa mai departe. secțiuni cu informații în diferite codificări. Nu putem spune că aceasta este abordarea corectă, dar o vom respinge pentru că se întâmplă și atât. În acest caz, chiar dacă respectăm cele două recomandări de mai sus, poate apărea totuși o situație când serverul va furniza informații despre o codificare, iar o altă codificare va fi scrisă explicit în codul HTML al paginii. Într-un astfel de caz, poate cea mai simplă soluție ar fi următoarea.

Scrie la dosar .htaccess directivă:

AddDefaultCharset Dezactivat

Când se utilizează această directivă, serverul pur și simplu nu va trimite deloc un antet cu informații despre codificarea paginii transmise. Apoi browserele vor începe de la datele de codificare care sunt specificate în mod explicit în codul HTML de pe paginile site-ului. În același timp, datele de pe o pagină pot fi codificate Windows-1251, și pe altă pagină, de exemplu în utf-8. Principalul lucru este să nu uitați să indicați pe aceste pagini metaetichetele corespunzătoare cu informații despre codificarea corectă pentru recunoașterea textului și afișarea de către browser.

O astfel de soluție, deși cea mai simplă, dar poate nu cea mai optimă și corectă. Într-un mod bun, trebuie să plasați toate informațiile de pe site și din toate secțiunile site-ului în aceeași codificare! Și dacă există mai multe pagini într-o codificare diferită, atunci este mai bine să actualizați informațiile din ele prin conversia tuturor textelor în codificarea necesară.

Situatia a doua

După cum știți, majoritatea site-urilor, atunci când generează pagini, selectează o parte din date dintr-o bază de date, de exemplu, MySQL (dacă site-ul este scris în PHP). De multe ori, la transferul unui site de la o găzduire la alta pot apărea probleme din cauza unei nepotriviri a codificărilor dintre datele stocate în baza de date MySQL și datele stocate, de exemplu, direct în șabloanele site-ului. Astfel, poate apărea o situație în care la formarea unei pagini, aceasta poate conține date în diferite codificări. Poate că aceasta este una dintre cele mai grave erori posibile cu codificarea de pe site și trebuie rezolvată imediat. În caz contrar, pot apărea dificultăți suplimentare la completarea și editarea site-ului.

Rezolvarea unor astfel de discrepanțe cu datele stocate în baza de date se realizează prin setarea corectă explicită a setărilor de codificare la conectarea la baza de date și înainte de a efectua preluarea datelor din aceasta. De exemplu, dacă datele de pe site sunt stocate în codificarea windows-1251, atunci trebuie să citim datele din baza de date în aceeași codificare. Pentru a face acest lucru, după conectarea la baza de date folosind funcția PHP mysql_connect() (sau mysql_pconnect()), executați următoarea interogare SQL:

mysql_query("SETĂ NUMELE cp1251");

Această interogare spune serverului de baze de date MySQL că toate datele sunt stocate și ar trebui transmise în codificarea cp1251 (acesta este numele codificării utilizate în MySQL în loc de windows-1251 menționat mai devreme, care este folosit la transmiterea datelor HTML).


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 din sudul Europei (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
LA
412
G
413
D
414
E
415
ȘI
416
Z
417
Și
418
Y
419
La
41A
L
41B
M
41C
H
41D
O
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.
A
430
b
431
în
432
G
433
d
434
e
435
și
436
h
437
și
438
al
439
la
43A
l
43B
m
43C
n
43D
despre
43E
P
43F

F.
R
440
Cu
441
t
442
la
443
f
444
X
445
c
446
h
447
w
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.



Vă rugăm să activați JavaScript pentru a vizualiza

15.03.2016

Nu încă


Salutare tuturor!
Continuăm să învățăm elementele de bază ale HTML. În această lecție, vom explora cum se specifică codificarea html pentru un site web (pagină web).
Această lecție este foarte importantă deoarece nu știi cum să specifici codificarea unei pagini web poate duce la imposibilitatea de citire a paginii. Întrebați: „Cum e, ei nu pot?”.
Permiteți-mi să vă arăt cum arată blogul meu cu o codificare greșită:

Asa de, Codificare HTML- acestea sunt tabele de corespondență ale codurilor și simbolurilor alfabetului. Adică, computerul nostru, prin codificare, va schimba codul în litere ușor de înțeles.

Pentru a spune browserului în ce codificare se află caracterele paginii web, trebuie să scrieți între etichete aici este metaeticheta:

Atenție, în cod există un cuvânt „nume codificare”. Aici trebuie să specificați codificarea HTML.
De obicei, acesta este utf-8 sau windows-1251.

Codificare pentruutf-8:

Codificarepentru Windows-1251:

Dacă uitați să spuneți browserului în ce codificare se află site-ul sau pagina web, browserul va încerca să determine codificarea automat, dar nu întotdeauna funcționează corect. In final, rezultatul va fi cel pe care l-am aratat in poza de mai sus.

Să trecem la practică.

Cum se creează un document HTML cu
codificare utf-8

„Toate programele” => „Accesorii” => „Bloc de note” :

</body> </html> </p><p> <head></head> aici este metaeticheta:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p> <html> <head> <title>Prima mea pagină HTML pe StepkinBlog..</body> </html> </p><p>Faceți clic în notepad <span>„Fișier” => „Salvare ca...”</span>:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-3.png' width="100%" loading=lazy loading=lazy></p><p><br>Unde elementul „Codificare:” specificați „UTF-8”. <br>Faceți clic pe „Salvați”:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-4.png' width="100%" loading=lazy loading=lazy></p><p>Măriți imaginea?</p> <h3><span>Cum se creează un document HTML cu codificare Windows-1251</span></h3> <p>Deschideți un blocnotes standard. <span><i>„Toate programele” => „Accesorii” => „Bloc de note”</i> </span>.<br>Apoi, inserați codul HTML standard în blocnotes:</p><p> <html> <head> <title>Prima mea pagină HTML pe StepkinBlog..</body> </html> </p><p>Acum specificăm în ce codificare este salvată pagina web. Pentru a face acest lucru, plasați între etichete <head></head> aici este metaeticheta:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </p><p>Iată cum ar trebui să iasă (linia numărul 4):</p><p> <html> <head> <title>Prima mea pagină HTML pe StepkinBlog..</body> </html> </p><p>Faceți clic în notepad <span>„Fișier” => „Salvare ca...”</span>:</p> <p><img src='https://i0.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-5.png' width="100%" loading=lazy loading=lazy></p> <p>Unde elementul „Nume fișier” scrieți numele paginii web în latină și cu extensia „.html”. Cred că îți amintești asta de la primele lecții. <br>Unde elementul „Codificare:” specificați „ANSI”. <br>Faceți clic pe „Salvați”:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy loading=lazy></p> <p>Asta e tot!</p> <p>Majoritatea webmasterilor aleg codificarea UTF-8. Nu voi spune motivele, pentru că mi-e teamă să vă încarc cu informații care nu sunt încă necesare în stadiul dvs. de învățare a HTML-ului.</p> <p>De exemplu, într-un bloc de note, setați codul:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p>Și specificați când salvați „ANSI”:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy loading=lazy></p> <p>Deoarece acest lucru este greșit, rezultatul va fi astfel:</p> <p>Salvați paginile dvs. web corect pentru a evita aceste rezultate</p> <p>Postarea anterioară <br></span> <span>Postarea următoare <br></p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <div class='yarpp-related'> <h3>Continut Asemanator:</h3> <ol> <li><a href="https://bazava.ru/ro/bystryi-sposob-ustanovki-printera-bez-diska-ustanovka.html" rel="bookmark" title="Instalarea unei imprimante fără disc: căutarea corectă a driverului potrivit Drivere pentru conectarea unei imprimante canon">Instalarea unei imprimante fără disc: căutarea corectă a driverului potrivit Drivere pentru conectarea unei imprimante canon</a></li> <li><a href="https://bazava.ru/ro/promyvochnaya-zhidkost-dlya-struinyh-printerov-canon-obzor.html" rel="bookmark" title="O prezentare generală a compozițiilor de marcă și de casă ale fluidelor de spălare cu jet de cerneală">O prezentare generală a compozițiilor de marcă și de casă ale fluidelor de spălare cu jet de cerneală</a></li> <li><a href="https://bazava.ru/ro/pechatayushchaya-golovka-epson-1410-sovmestimost-pechatayushchaya-golovka-epson-obzor.html" rel="bookmark" title="Cap de imprimare Epson: prezentare generală, specificații, curățare">Cap de imprimare Epson: prezentare generală, specificații, curățare</a></li> <li><a href="https://bazava.ru/ro/draiver-dlya-canon-mf-3010-64-bit-ustanovka-i-nastroika-printera-canon-i-sensys-mf3010.html" rel="bookmark" title="Instalarea și configurarea imprimantei Canon i-SENSYS MF3010">Instalarea și configurarea imprimantei Canon i-SENSYS MF3010</a></li> </ol> </div> </div> </article> <nav class="nav-single"> <h3 class="assistive-text">Post navigare</h3> <span class="nav-previous"><a href="https://bazava.ru/ro/obzor-materinskoi-platy-asus-p5q-pro-opisanie-materinskoi-platy-asus.html" rel="prev"><span class="meta-nav">Descriere placa de baza Asus P50IJ</span> Pentru a finaliza seria de recenzii...</a> </span> <!-- /next_post --> <span class="nav-next"><a href="https://bazava.ru/ro/sbros-pampersa-epson-l1300-knopkami-sbros-pampersa-epson-luchshaya-programma-adjustment.html" rel="next">Resetare scutec Epson - Cel mai bun program! <span class="meta-nav">→</span></a> </span> <!-- /next_post --> </nav> <div id="disqus_thread"> </div> </div> </div> <div id="secondary" class="widget-area" role="complementary"> <aside id="text-10" class="widget widget_text"> <div class="textwidget"> </div> </aside> <aside id="text-3" class="widget widget_text"> <div class="textwidget"> <div class="ya-site-form ya-site-form_inited_no" onclick="return { 'action':'/searchresult','arrow':false,'bg':'transparent','fontsize':12,'fg':'#000000','language':'uk','logo':'rb','publicname':'bazava.ru','suggest':true,'target':'_blank','tld':'ua','type':3,'usebigdictionary':true,'searchid':1,'input_fg':'#000000','input_bg':'#ffffff','input_fontStyle':'normal','input_fontWeight':'normal','input_placeholder':null,'input_placeholderColor':'#000000','input_borderColor':'#7f9db9'} "> <form action="/" method="get" target="_blank"><input type="hidden" name="searchid" value="2265218" /><input type="hidden" name="l10n" value="Regatul Unit" /><input type="hidden" name="reqenc" value="" /><input type="search" name="text" value="" /><input type="submit" value="Să știi" /></form> </div> <style type="text/css"> .ya-page_js_yes .ya-site-form_inited_no { display: none; } </style> <script type="text/javascript"> (function(w, d, c) { var s = d.createElement('script'), h = d.getElementsByTagName('script')[0], e = d.documentElement; if ((' ' + e.className + ' ').indexOf(' ya-page_js_yes ') === -1) { e.className += ' ya-page_js_yes'; } s.type = 'text/javascript'; s.async = true; s.charset = 'utf-8'; s.src = (d.location.protocol === 'https:' ? 'https:' : 'http:') + '//site.yandex.net/v2.0/js/all.js'; h.parentNode.insertBefore(s, h); (w[c] || (w[c] = [])).push(function() { Ya.Site.Form.init() }) })(window, document, 'yandex_site_callbacks'); </script> </div> </aside> <aside id="categories-2" class="widget widget_categories"> <h3 class="widget-title">Categorii</h3> <ul> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/internet/">Internet</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/programs/">Programe</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/windows/">Windows</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/devices/">Dispozitive</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/android/">Android</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/computer/">Un calculator</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/ro/category/apple/">Măr</a> </li> </ul> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">intrări noi</h3> <ul> <li> <a href="https://bazava.ru/ro/printer-xerox-phaser-3010-instrukciya-po-ekspluatacii-vozmozhnye-sposoby-podklyucheniya.html">Metode posibile de conectare</a> </li> <li> <a href="https://bazava.ru/ro/utility-dlya-xerox-workcentre-3119-windows-10-instrukciya-k-oborudovaniyu.html">Instrucțiuni pentru echipament</a> </li> <li> <a href="https://bazava.ru/ro/installiruem-draivera-dlya-hp-deskjet-f380-otzyvy-hp-deskjet-f380-kakie.html">Recenzii despre HP DeskJet F380 Ce sisteme de operare sunt compatibile cu driverele Deskjet F380</a> </li> <li> <a href="https://bazava.ru/ro/programma-dlya-sbrosa-pampersov-epson-r290-kod-sbrosa-pampersa.html">Cod de resetare a scutecului pentru imprimantele cu jet de cerneală Epson</a> </li> <li> <a href="https://bazava.ru/ro/epson-l1300-sbros-pampersa-servisnoe-po-sbros-pampersa-na-printerah.html">Resetați scutecele pe imprimantele Epson L210, L110, L300, L350, L355</a> </li> <li> <a href="https://bazava.ru/ro/kartridzh-hp-ce505a-kakoi-printer-sovmestimyi-kartridzh-im-ce505a-chernyi.html">Cartuș compatibil im_CE505A</a> </li> <li> <a href="https://bazava.ru/ro/zaryadka-othodit-ot-telefona-chto-delat-razboltalsya-zaryadnyi-razem-v.html">Port încărcător telefon spart</a> </li> <li> <a href="https://bazava.ru/ro/vneshnii-akkumulyator-dlya-smartfonov-bolshoi-kak-vybrat-portativnyi-akkumulyator-dlya-telefona-portat.html">Cum să alegi o baterie de telefon portabil</a> </li> <li> <a href="https://bazava.ru/ro/aifon-popal-v-vodu-i-ne-vklyuchaetsya-chto-delat-esli-aifon-upal-v-vodu-i-ne.html">Ce să faci dacă iPhone-ul a căzut în apă și nu se pornește</a> </li> <li> <a href="https://bazava.ru/ro/kak-luchshe-pochistit-telefon-na-androide-kak-pochistit-android-telefon-ot.html">Cum să vă curățați telefonul Android de fișierele nedorite?</a> </li> </ul> </aside> <aside id="text-7" class="widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> <footer id="colophon" role="contentinfo"> <div class="site-info"> <a href="https://bazava.ru/ro/" title="Portal Hardware de acasă">Portal Hardware de acasă</a> </div> </footer> </div> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.9.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "visibility_show":"show","visibility_hide":"hide","width":"Auto"} ; /* ]]> */ </script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/wpfront-scroll-top/js/wpfront-scroll-top.min.js?ver=1.6'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/themes/twentytwelve/js/navigation.js?ver=20140711'></script> <script type='text/javascript'> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar" : "sidebar-1", "margin_top" : 10, "margin_bottom" : 0, "stop_id" : "", "screen_max_width" : 0, "screen_max_height" : 0, "width_inherit" : false, "refresh_interval" : 1500, "window_load_hook" : false, "disable_mo_api" : false, "widgets" : ['text-7'] } ; </script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/disqus-comment-system/media/js/disqus.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.9.1'></script> <div id="wpfront-scroll-top-container"><img src="https://bazava.ru/wp-content/plugins/wpfront-scroll-top/images/icons/1.png" alt="" / loading=lazy loading=lazy></div> <script type="text/javascript">function wpfront_scroll_top_init() { if(typeof wpfront_scroll_top == "function" && typeof jQuery !== "undefined") { wpfront_scroll_top({ "scroll_offset":100,"button_width":0,"button_height":0,"button_opacity":0.8,"button_fade_duration":200,"scroll_duration":400,"location":1,"marginX":20,"marginY":20,"hide_iframe":false,"auto_hide":false,"auto_hide_after":2} );} else { setTimeout(wpfront_scroll_top_init, 100);} }wpfront_scroll_top_init();</script> </body> </html>