Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Kodimi rus html. Kodimi i faqes HTML

Në këtë artikull, do të përpiqem të vendos me pika të gjitha "i"-të (si dhe "i"-të) kur bëhet fjalë për zgjedhjen e kodimit për faqen HTML që po krijohet.

Kur fillova për herë të parë të ndërtoj faqe interneti, vazhdimisht kisha probleme me këto kodime. Ju e ruani faqen HTML, e ngarkoni atë në server, e hapni, zhurmoni dhe ka disa mut. Epo, përshëndetje, kemi ardhur.

Ose në mjedisin e korrigjimit (për shembull, mjedisi i zhvillimit lokal "") gjithçka është në rregull, por nga pritja përsëri ata, bastardë të mallkuar, po më shikojnë me paturpësi.

Kishte shumë dhimbje me motorët. Papritur, për një arsye të panjohur, letrat amtare ruse shndërrohen në...

Tani do të merremi me këtë çështje në detaje dhe ju do ta dini qartë në çfarë kodimi për të ruajtur faqen HTML? Dhe përmes çfarë instrumentesh.

Për të forcuar mirëkuptimin tonë të ndërsjellë, le të përcaktojmë konceptin kodimi. Kështu që, kodimiështë një tabelë e korrespondencës midis kodeve të makinës dhe karaktereve të alfabetit. Ekziston një sekuencë e karaktereve të makinës që kompjuter inteligjent, në përputhje me të zgjedhurit tabela e kodeve, zëvendësohet me shkronjat që kuptojmë.

Në vitet '90 të shekullit të kaluar (çfarë antikiteti, dhe ende e mbaj mend kalendarin e vitit 1991 në mur) kishte 4 kodime për PC dhe një tjetër, i vetin, për Mac. Ironia e fatit është se në të gjitha këto kodime, karakteret latine përputheshin me kodet e makinerive duke përdorur të njëjtin algoritëm, por sa i përket alfabetit cirilik, secili prej kodimeve kishte mendimin e vet.

E gjithë kjo konfuzion çoi në shfaqjen e krakozyabrs. Për shembull, nëse fjala " Pyetje", shtypur në kodimin windows-1251, shfaqni në kodimin KOI8-R, ju merrni fjalën " bNOPNYA».

Falë Zotit, vitet '90 janë tashmë shumë prapa nesh dhe nga pesë kodime deluzive kanë mbetur vetëm dy normale. Por kjo është mjaft e mjaftueshme që një webmaster fillestar të humbasë në dy pisha. Nuk ka problem, mos u shqetëso, tani do të të nxjerr nga ky pyll!

Aktiv ky moment zgjedhje për Kodimi i dokumentit HTML qëndron midis Windows-1251 dhe utf-8. Dhe tani vëmendja: utf-8 është shumë më i pasur, më i fuqishëm dhe e ardhmja qëndron me të. Pra, ne do t'i ruajmë skedarët tanë HTML në utf-8.

Unë do të justifikoj fjalët e mia ;). UTF-8 përmban karaktere të tilla si ↓. Dhe në windws-1251, në vend të këtyre simboleve, kjo është: > . Dhe në utf-8 ka një shenjë "euro"; utf-8 ju lejon gjithashtu të kombinoni një mori karakteresh të ndryshëm specifikë të përdorur në gjuhë të tilla si gjeorgjiane, hebraisht, kinezisht, japonisht në një skedar HTML; dhe gjithashtu utf-8në kodimet HTML- ky është një rregull i sjelljes së mirë.

Shpresoj se ju kam bindur dhe ju do të përdorni Unicode (meqë ra fjala, "utf-8" dhe "Unicode" janë sinonime, ose, për të qenë më të saktë, utf-8 është një nga kodimet e familjes Unicode, e cila ka fitoi popullaritet në mesin e zhvilluesve të uebit).

Tani le t'i hedhim një vështrim më të afërt mjeteve të transkodimit të skedarëve që ju rekomandoj të përdorni, i dashur lexues.

Mjete për të punuar me kodimet e skedarëve HTML

Në fakt, ka vetëm tre prej tyre:

  • PSPad. Redaktori i tekstit falas, i preferuari im.
  • . Një tjetër redaktues i mirë teksti dhe gjithashtu falas.
  • Dreamweaver. Epo, ju jeni njohur me Dreamweaver nga ime.

Ne ngarkojmë disa skedarë HTML në PSPad. Dhe si mund të kuptojmë se çfarë lloj kodimi ka subjekti eksperimental i ngarkuar? Shumë thjesht, gjithçka është shkruar qartë në shiritin e statusit (më poshtë).

Hapni kodimin e skedarit HTML windows-1251

Tani, kur krijoni një dokument të ri HTML, le të kujdesemi për kodimin e tij.

Le të shkojmë në menunë time të preferuar PSPad. Ne jemi të interesuar për artikullin Formati. Në të do të kontrollojmë kutinë pranë kodimit utf-8.

Dhe kështu kodimi i skedarit të ardhshëm është windows-1251

Tani për mënyrën se si ndryshoni kodimin e skedarit HTML. Po, rezulton të jetë shumë e thjeshtë:

Duhet të klikoni në kodimin e kërkuar në artikullin e menysë Formati dhe kodimi do të ndryshojë. Pas kësaj, ruani skedarin, ai rikodohet, puna ka mbaruar.

në lidhje me Notepad ++ gjithçka është shumë e ngjashme me situatën e përshkruar më sipër. Vetëm për të punuar me kodime ju duhet të përdorni artikullin e menysë Kodimet.

I vetmi ndryshim është se në rastin e Notepad++, shfaqen artikuj të menysë që janë krijuar posaçërisht për konvertimin e kodimit Konverto... (e panevojshme për mendimin tim, gjithçka është më e thjeshtë në PSPad dhe kjo është arsyeja pse unë e përdor atë). Prandaj, këto janë ato që duhet të klikoni nëse dëshironi të ndryshoni kodimet e skedarit tonë HTML.

Ndër të tjera, kur kursejmë në utf-8 kemi një zgjedhje: pa BOM ose me BOM. Ne si webmaster duhet të përdorim kodimin UTF-8 (pa BOM).

Kjo është ajo që Wikipedia do t'i përgjigjet pyetjes "çfarë është BOM"

Për të përcaktuar formatin e paraqitjes së Unicode në një skedar teksti, përdoret një teknikë në të cilën në fillim të tekstit shkruhet karakteri U+FEFF (hapësirë ​​e pandërprerë me gjerësi zero), e quajtur edhe shenjë e renditjes së bajtit (BOM). . Kjo metodë bën dallimin midis UTF-16LE dhe UTF-16BE sepse karakteri U+FFFE nuk ekziston. Gjithashtu përdoret ndonjëherë për t'iu referuar formatit UTF-8, megjithëse koncepti i renditjes së bajtit nuk zbatohet për këtë format.

Nëse e lexoni tekstin e mësipërm 10 herë dhe kruani kokën, bëhet e qartë: për utf-8 BOM NUK kemi nevojë. Përveç kësaj, nëse ruani një skedar me një skript php në kodim utf-8 me BOM, atëherë nuk do të funksionojë, sepse mbajtësi nuk do të kuptojë se çfarë lloj marrëzie është shkruar në fillim të skedarit të skriptit (dua të them atë hapësirën e pandërprerë me gjerësi zero).

Epo, epo, gjithçka që mbetet është të hedhim një vështrim më të afërt Dreamweaver.

Kur krijoni një skedar të ri, kushtojini vëmendje kodimit në të cilin do të krijohet. Për ta bërë këtë, në dritaren për krijimin e një dokumenti të ri Skedar → I ri (Ctrl+N) përdorni butonin Preferencat...

Dhe shikoni atë që është vendosur si kodimi i paracaktuar:

Kodimi i parazgjedhur i skedarit HTML të krijuar në Dreamweaver

Transkodoni një skedar të hapur HTML në Dreamweaver e mundur në dialog Karakteristikat e faqes, e cila niset nga menyja ModifikoVetitë e faqes (Ctrl + J).

Zgjidhni kodimin e kërkuar, shtypni Ne rregull dhe kjo është ajo, detyra e transkodimit ka përfunduar (por BOM është ende i panevojshëm, mos e kontrolloni kutinë).

Zbulimi i kodimit të shfletuesit

Pra, skedari ynë HTML ruhet në kodimin që kemi zgjedhur. Tani le të shohim pyetjen: Si e di shfletuesi për kodimin e përdorur në një skedar të caktuar HTML?

Këtu ka tre opsione:

1. Ne vetë i tregojmë shfletuesit se çfarë kodimi është vendosur për këtë skedar HTML. Kjo bëhet duke përdorur etiketën META

Shembulli i mësipërm udhëzon shfletuesin që skedari HTML i shkarkuar të ruhet në kodim utf-8.

Nëse skedari HTML ruhet në kodimin e Windows-1251, atëherë:

Nga rruga, kur transkodoni skedarët, mos harroni të ndryshoni direktivat në etiketën META në ato aktuale. Dreamweaver, kur ndryshon kodimin, e bën këtë automatikisht, por në redaktuesit e tjerë të tekstit ju duhet të përputheni vetë me kodimin e aplikuar dhe direktivën e etiketës META.

HTML-ja e plotë duket kështu (Unë e citoj atë për të kuptuar pyetjen "ku tregohet etiketa META me direktivën e kodimit?" Kushtojini vëmendje rreshtit të 4-të):

Dokument pa titull Epo, etj.

2. Përdorimi i skedarit .htaccess. Ndonjëherë serveri do të detyrojë titujt për skedarët HTML të shkarkuar dhe do t'i tregojë shfletuesit kodimin e paracaktuar. Në këtë rast, shfletuesi nuk i kushton vëmendje udhëzimeve në etiketën META, por shfaq skedarin HTML në kodimin e raportuar nga serveri. Në mënyrë që skedari të shkarkohet në kodimin që ju nevojitet (shpesh hostimi ju detyron të specifikoni kodimin e Windows-1251), krijohet një skedar i quajtur ".htaccess" në rrënjën e drejtorisë së pritjes.

Ky skedar është menduar për konfigurim shtesë të serverit. Efekti i direktivave .htaccess zbatohet për të gjithë skedarët dhe nëndrejtoritë që ndodhen në drejtorinë ku keni ruajtur skedarin .htaccess.

Ju mund ta krijoni këtë skedar, për shembull, në Total Commander duke shtypur kombinimin e tasteve kryesore Shift + F4 dhe duke specifikuar emrin e skedarit të krijuar .htaccess. Më pas, redaktori i tekstit specifikon direktivat për cilësimet shtesë të kodimit të paracaktuar.

Për skedarët HTML të koduar utf-8 në .htaccess ju duhet të shkruani një rresht:

AddDefaultCharset UTF-8

Për skedarët HTML në kodimin Windows-1251:

AddDefaultCharsetWindows-1251

Nëse pritja juaj është me dinakëri e mençur dhe nuk u kushton vëmendje këtyre direktivave, atëherë mund të provoni:

Charset çaktivizohet në AddDefaultCharset Off

Nëse kjo nuk funksionon, atëherë thjesht pyesni hostin tuaj se çfarë duhet të bëni për të çaktivizuar kodimin e paracaktuar :). E gjithë kjo varet nga cilësimet specifike të serverit të ofruesit të pritjes.

3. Udhëzim PHP që specifikon kodimin e paracaktuar. Në skedarin që duhet të shfaqet në kodimin e dëshiruar, pavarësisht nga cilësimet e serverit të ofruesit të pritjes, në fillim tregohet një direktivë me kodin php:

Ky kod php do të dërgojë një kokë serveri që tregon kodimin e paracaktuar të shfletuesit. Në shembullin e mësipërm, kodimi utf-8 do të përdoret për të shfaqur faqen.

Zakonisht nuk ka truke në cilësimet e serverit të ofruesit të pritjes për t'u marrë me një skrap të tillë.

Dua të vërej se në mënyrë që serveri të përpunojë udhëzimet PHP, skedari html duhet të ketë shtrirjen .php(për shembull index.php).

A keni ndonjë pyetje tjetër në lidhje me kodimet? Shkruani në komente. Ne duhet t'i zgjidhim këto probleme një herë e përgjithmonë :)

Arsyeja për të kuptuar se si funksionon UTF-8 dhe çfarë është Unicode është fakti që VBScript nuk ka funksione të integruara për të punuar me UTF-8. Dhe meqenëse nuk gjeta asgjë që funksiononte, më duhej ta shkruaja/përfundoja vetë. Sipas mendimit tim, përvoja është e dobishme në çdo rast. Për një kuptim më të mirë, do të filloj me teorinë.

Rreth Unicode

Para ardhjes së Unicode, u përdorën gjerësisht kodimet 8-bit, disavantazhet kryesore të të cilave janë të dukshme:
  • Ka vetëm 255 karaktere, madje edhe atëherë disa prej tyre nuk janë grafike;
  • Aftësia për të hapur një dokument me një kodim të ndryshëm nga ai në të cilin është krijuar;
  • Për çdo kodim duhet të krijohen fontet.
Kështu u vendos që të krijohej një standard i vetëm për një kodim "të gjerë" që do të përfshinte të gjithë personazhet (në fillim ata donin të përfshinin vetëm personazhe të zakonshëm, por më pas ndryshuan mendje dhe filluan të shtonin ato ekzotike). Unicode përdor 1,112,064 pika kodi (më shumë se 16 bit). Fillimi kopjon ASCII, dhe më pas pjesën tjetër të karaktereve latine, cirilike dhe të tjera evropiane dhe aziatike. Për të caktuar karaktere, përdorni shënimin heksadecimal të formës "U+xxxx" për 65 mijë të parët dhe me një numër të madh shifrash për pjesën tjetër.

Rreth UTF-8

Dikur mendova se ekziston Unicode, dhe ka UTF-8. Më vonë kuptova se kisha gabuar.
UTF-8 është vetëm një paraqitje 8-bitëshe e Unicode. Karakteret me kode më të vogla se 128 përfaqësohen si një bajt, dhe duke qenë se në Unicode ata përsërisin ASCII, teksti i shkruar vetëm me këto karaktere do të jetë tekst ASCII. Karakteret me kode nga 128 janë të koduara në 2 bajt, me kode nga 2048 - 3, nga 65536 - 4. Pra, do të ishte e mundur të merrni deri në 6 bajt, por nuk ka mbetur asgjë për të koduar me to.
0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x00111FF0xxxxxxxxxxxxxxxxxxxxxxxxx x 0x00010000 - 0x001FF FFF: 11110xxx 10xxxxxx 10xxxxxxx 10xxxxxx

Ne kodojmë në UTF-8

Procedura është afërsisht kjo:
  • Ne konvertojmë çdo karakter në Unicode.
  • Ne kontrollojmë se nga cili varg është simboli.
  • Nëse kodi i simbolit është më i vogël se 128, atëherë ne e shtojmë atë të pandryshuar në rezultat.
  • Nëse kodi i karakterit është më i vogël se 2048, atëherë marrim 6 bitët e fundit dhe 5 bitët e parë të kodit të karakterit. Shtojmë 0xC0 në 5 bitët e parë dhe marrim bajtin e parë të sekuencës, dhe shtojmë 0x80 në 6 bitet e fundit dhe marrim bajtin e dytë. Lidhni dhe shtoni rezultatit.
  • Ne mund të vazhdojmë në një mënyrë të ngjashme për kodet e mëdha, por nëse karakteri është përtej U+FFFF, do të duhet të merremi me surrogatët UTF-16.
Funksioni EncodeUTF8(s) Dim i, c, utfc, b1, b2, b3 Për i=1 në Len(s) c = ToLong(AscW(Mid(s,i,1))) Nëse c< 128 Then utfc = chr(c) ElseIf c < 2048 Then b1 = c Mod &h40 b2 = (c - b1) / &h40 utfc = chr(&hC0 + b2) & chr(&h80 + b1) ElseIf c < 65536 And (c < 55296 Or c >57343) Pastaj b1 = c Mod &h40 b2 = ((c - b1) / &h40) Mod &h40 b3 = (c - b1 - (&h40 * b2)) / &h1000 utfc = chr(&hE0 + b3) & chr(&h80 + b2 ) & chr(&h80 + b1) Përndryshe " Zëvendësues i vogël ose i madh UTF-16 utfc = Chr(&hEF) & Chr(&hBF) & Chr(&hBD) Fund If EncodeUTF8 = EncodeUTF8 + utfc Funksioni i Fundit Tjetër Funksioni ToLong(Vint)< 0 Then ToLong = CLng(intVal) + &H10000 Else ToLong = CLng(intVal) End If End Function

Dekodimi UTF-8

  • Ne jemi duke kërkuar për karakterin e parë të formës 11xxxxxx
  • Ne numërojmë të gjitha bajtet e mëvonshme të formës 10xxxxxx
  • Nëse sekuenca është dy bajt dhe bajt i parë është 110xxxxx, atëherë i presim parashtesat dhe i shtojmë ato, duke shumëzuar bajtin e parë me 0x40.
  • Po kështu për sekuenca më të gjata.
  • Zëvendësoni të gjithë sekuencën me karakterin e dëshiruar të Unicode.
Dekodimi i funksionitUTF8(s) Dim i, c, n, b1, b2, b3 i = 1 Bëj ndërsa i<= len(s) c = asc(mid(s,i,1)) If (c and &hC0) = &hC0 Then n = 1 Do While i + n <= len(s) If (asc(mid(s,i+n,1)) and &hC0) <>&h80 Pastaj Dilni Do Fund nëse n = n + 1 Cikli Nëse n = 2 dhe ((c dhe &hE0) = &hC0) Atëherë b1 = asc(mes(s,i+1,1)) dhe &h3F b2 = c dhe &h1F c = b1 + b2 * &h40 Elseif n = 3 dhe ((c dhe &hF0) = &hE0) Pastaj b1 = asc(mid(s,i+2,1)) dhe &h3F b2 = asc(mes(s,i+1, 1)) dhe &h3F b3 = c dhe &h0F c = b3 * &H1000 + b2 * &H40 + b1 Përndryshe " Karakter më i madh se U+FFFF ose sekuencë e pasaktë c = &hFFFD Fund nëse s = majtas(s,i-1) + chrw( c ) + mid(s,i+n) Elseif (c dhe &hC0) = &h80 atëherë " Bajt vazhdimi i papritur s = majtas(s,i-1) + chrw(&hFFFD) + mesi(s,i+1) Fund Nëse i = i + 1 Dekodimi i ciklitUTF8 = s Funksioni i Fundit

Një nga problemet më të zakonshme me të cilat përballet një fillestar Webmaster(dhe jo vetëm fillestarët), kjo probleme me kodimin në sit. Edhe për mua shfaqet vazhdimisht kur krijoj faqe interneti " abrakadabra"Por, për fat, unë e di shumë mirë se si ta zgjidh këtë problem, kështu që vendosa gjithçka në rregull brenda pak sekondave. Dhe në këtë artikull do të përpiqem t'ju mësoj po aq shpejt zgjidhni problemet që lidhen me kodimin në sit.

Gjëja e parë që vlen të përmendet është se të gjitha problemet me shfaqjen e "abracadabra" shoqërohen me një mospërputhje midis kodimit të dokumentit dhe kodimit të vendosur nga shfletuesi. Le të themi një dokument në Windows-1251, por për disa arsye shfletuesi shfaqet UTF-8. Dhe burimi i një mospërputhjeje të tillë mund të jenë arsyet e mëposhtme.

Arsyeja e parë

Etiketa meta është shkruar gabimisht lloji i përmbajtjes. Kini kujdes, duhet të përmbajë gjithmonë kodimin në të cilin është shkruar dokumenti juaj.

Arsyeja e dytë

Duket se etiketa meta është shkruar ashtu siç dëshironi, dhe shfletuesi shfaq saktësisht atë që dëshironi, por për disa arsye ka ende probleme me kodimin. Fajtori këtu është pothuajse me siguri që vetë dokumenti ka kodim të ndryshëm. Nëse punoni në Notepad ++, pastaj në fund djathtas është emri i kodimit të dokumentit aktual (për shembull, ANSI). Nëse vendosni një meta etiketë UTF-8, dhe vetë dokumenti është shkruar në ANSI, pastaj bëni konvertimin në UTF-8(përmes menusë" Kodimet"dhe pika" Konverto në UTF-8 pa BOM").

Arsyeja e tretë

Arsyeja e katërt

Dhe së fundi, arsyeja e fundit popullore është problem me kodimin në bazën e të dhënave. Së pari, sigurohuni që të gjitha tabelat dhe fushat tuaja të jenë të shkruara në të njëjtin kodim, i cili përputhet me kodimin e pjesës tjetër të faqes. Nëse kjo nuk ju ndihmon, atëherë menjëherë pas lidhjes në skenar, ekzekutoni kërkesën e mëposhtme:

VENDOSI EMRAT "utf8"

Në vend të " utf8" Mund të ketë një kodim tjetër. Pas kësaj, të gjitha të dhënat nga baza e të dhënave duhet të dalin në kodimin e duhur.

Në këtë artikull, shpresoj se kam shpjeguar, të paktën, 90% e problemeve shoqërohen me shfaqjen e "korriçeve" në sit. Tani ju duhet të merreni me një problem kaq popullor dhe të thjeshtë si kodimi i pasaktë në asnjë kohë.

Kur krijojnë një faqe interneti, webmasterët fillestarë shpesh kanë pyetje: çfarë kodimi të përdorin për faqen e internetit, si ndryshon UTF-8 nga Windows-1251 dhe si ta futin atë në META Charset të faqeve HTML të faqes. Përgjigjet për të gjitha këto pyetje janë në këtë artikull.

Çfarë është kodimi i faqes dhe si funksionon?

Kodimi mund të paraqitet në formën e një tabele të përbërë nga shkronja të ndryshme, numra dhe simbole të tjera të kuptueshme për njerëzit, të cilat janë të koduara në një mënyrë të caktuar. Kur hapni një skedar teksti, i cili përfshin faqe HTML, kompjuteri lexon nga kreu i skedarit në cilin kodim është ruajtur dhe shfaq tekstin në kodimin e duhur, duke i kthyer të dhënat e kompjuterit në një formë të kuptueshme për njerëzit duke i krahasuar këto të dhëna me tabela e kodimit. Nëse informacioni i kodimit nga kreu i skedarit përputhet me kodimin në të cilin të dhënat ruhen në faqen HTML, atëherë përdoruesi sheh shkronjat, numrat dhe simbolet e tjera të njohura për të. Nëse ka një mospërputhje, rezultati është se përdoruesi paraqitet me një grup të pakuptueshëm karakteresh, kjo veçanërisht shpesh ndodh në programet më të vjetra të postës elektronike. Nëse një përdorues merr një letër me gërmadha të pakuptueshme, atëherë thjesht duke kaluar nëpër kodime të ndryshme, zakonisht është e mundur të hamendësohet dhe të zgjidhni atë në të cilën është shkruar letra, dhe si rezultat, një grup i pakuptueshëm karakteresh shndërrohet në të kuptueshëm për njeriun. teksti.

E njëjta gjë ndodh me faqet HTML të faqes. Nëse dokumenti është ruajtur, për shembull, në kodimin UTF-8, dhe vetë dokumenti përmban një etiketë META që tregon se ky është kodimi i Windows-1251, atëherë shfletuesi do të krahasojë përsëri të dhënat e ruajtura në skedar me tabelën e kodimit. specifikuar në të dhe meqenëse karakteret janë të koduara sipas -ndryshe, shfletuesi do të shfaqë një grup të pakuptueshëm karakteresh në vend të tekstit të zakonshëm, ose disa nga shkronjat mund të jenë në formë normale, ndërsa shkronjat ose simbolet e tjera mund të shfaqen, për shembull, në formën e pikëpyetjeve. E gjithë sa më sipër vlen edhe për shfaqjen e emrave të skedarëve.

Kur krijoni një dokument të ri në një redaktues teksti, është më mirë që menjëherë të siguroheni që është zgjedhur kodimi i dëshiruar. Redaktorët modernë ju lejojnë të konvertoni tekstin e një dokumenti të hapur nga një kodim në tjetrin, dhe Notepad standard ju lejon të zgjidhni kodimin vetëm kur ruani skedarin.

Kodimet më të zakonshme

Nga paragrafi i mëparshëm, ju tashmë e dini se çfarë është kodimi dhe pse është kaq e rëndësishme ta shkruani saktë atë në kodin e faqeve të faqes. Le të zbulojmë tani se cili nga kodimet e shumta është më i miri për të zgjedhur për sitin e ardhshëm. Meqenëse sistemi operativ më i zakonshëm dhe më i lehtë për t'u mësuar ka qenë gjithmonë sistemi operativ Windows, shumica e zhvilluesve të uebit krijuan faqe HTML në kodimin Windows-1251 (ANSI), i cili përdorej si parazgjedhje. Por Windows-1251 nuk mbështet një numër shumë të madh shkronjash dhe simbolesh, dhe zhvilluesit duan të përdorin shigjeta, zemra, katrorë dhe simbole të tjera në tekstet e tyre, duke përfshirë nevojën për të kombinuar fjalë nga gjuhë të ndryshme në një dokument, kështu që ka kohë që është zëvendësuar UTF-8 më i zgjeruar dhe shumica e zhvilluesve përdorin këtë kodim.

Problemet e kodimit jo vetëm në faqen HTML

Sajti, pavarësisht nëse është thjesht një koleksion dokumentesh statike HTML ose skriptet dinamike komplekse që gjenerojnë faqe në fluturim, është i pritur në një server në internet, i cili gjithashtu funksionon me një kodim specifik. Dhe nëse serveri ofron informacion në një kodim, dhe faqet ose skriptet tuaja ruhen në një kodim tjetër, atëherë përsëri mund të ketë probleme me shfaqjen e faqeve në shfletuesin e përdoruesit. Shumë hoste ju lejojnë të ndryshoni cilësimet dhe të zgjidhni kodimin në përputhje me atë të përdorur në skedarët e faqes përmes panelit të kontrollit, ose mund ta shkruani atë në skedarin .htaccess nëse hosti përdor serverin e njohur të internetit Apache.

Pothuajse asnjë faqe interneti moderne nuk mund të funksionojë pa përdorur një bazë të dhënash MySQL dhe gjithashtu mund të bëhet burim i problemeve të kodimit. Nëse skedarët e faqes ruhen në një kodim, dhe informacioni në bazën e të dhënave është në një tjetër, atëherë në faqe ajo pjesë e informacionit që del nga baza e të dhënave mund të shfaqet në formën e të njëjtave pikëpyetje ose simbole të tjera të pakuptueshme. . Për të shmangur problemet me kodimin, duhet të jetë e njëjtë për ueb serverin, bazën e të dhënave MySQL, në skriptet, në faqet HTML të faqes dhe në etiketën META, e cila është e shkruar në kodin HTML. Nëse ka probleme me shfaqjen e tekstit, atëherë kontrolloni të gjitha sa më sipër për problemin.

Kompleti META i Dokumentit HTML

Për t'i treguar shfletuesit dhe motorëve të kërkimit se në çfarë kodimi ruhen faqet e faqes, një META Charset shkruhet në kodin e tyre.

Për kodimin e Windows-1251:

Titulli i faqes

Teksti i faqes


Për kodimin UTF-8:

Titulli i faqes

Teksti i faqes


Tani e dini se çfarë është kodimi i faqes dhe ku të kërkoni probleme nëse teksti shfaqet gabimisht në ndonjë pjesë të faqes.

Kopjimi i artikullit është i ndaluar.

). Dhe këtu do të flasim për anën praktike të përdorimit të UTF‑8.

Avantazhi kryesor

Me kodimin UTF-8, mund të përfshini drejtpërdrejt çdo karakter nga i gjithë grupi Unicode në dokumentin tuaj. Enkodimet e vjetra (si Windows-1251 ose KOI8-R) jepnin jo më shumë se 256 karaktere, por Unicode ka mbi 100,000 karaktere. Midis tyre janë shenjat tipografike (vijë, thonjëza, elipsë, apostrof, hapësirë ​​që nuk thyhet, vizë që nuk thyhet, etj.), karaktere speciale (№, §, ©, ‰, ×, etj.), shkronja me diakritikë dhe ligaturat (é, è, Ü, Æ, ø, fi, etj.), simbolet e pothuajse të gjithë alfabeteve që ekzistojnë në botë (α, Ω, א, ת, ѣ, 伲, 儻, etj.), piktogramet dhe ikonat ( →, ■, , ☺ etj.) dhe shumë simbole të tjera.

Shikoni "Tabela e simboleve" në kompjuterin tuaj. Me kodimin UTF-8, mund të merrni çdo karakter direkt nga kjo tabelë dhe ta ngjisni direkt në dokumentin tuaj. Nëse keni nevojë për një të drejtë autori, diplomë ose shenjë integrale, nuk keni nevojë të kërkoni një font të veçantë, ta paraqisni këtë shenjë në një format grafik ose të gjeni ndonjë truk tjetër. Në kodimin UTF-8, çdo karakter, qoftë një fraksion ⅓ ose një karakter kinez, mund të përdoret në një dokument në të njëjtën mënyrë si shkronja latine "A", ruse "ы" ose shenja "+".

Në kodimet më të vjetra, ishte e mundur të futeshin karaktere speciale në një dokument duke përdorur zëvendësime ( referencat). Për shembull, em dash korrespondonte me zëvendësimin & mdash ; (gjithashtu & # 8212; ose & # x2014; ), dhe shkronja greke "pi" zëvendësohet & pi; (gjithashtu & # 960 ; ose & # x3c0 ; ). Për shumicën e karaktereve kishte vetëm zëvendësime numerike: për shembull, për thyesën ⅓ - & # 8531 ; ose & # x2153; , për shenjën muzikore “flat” - & # 9837 ; ose & # x266d; , për një vizë që nuk thyhet - & # 8209 ; ose & # x2011; . Sigurisht, kjo është shumë e papërshtatshme. Së pari, është shumë e gjatë: për shembull, në vend të një karakteri "♭" duhet të futni shtatë: & # 9837 ; . Së dyti, një dokument me zëvendësime është i pakëndshëm për t'u parë dhe modifikuar. Është shumë më i përshtatshëm kur shihni në dokument direkt karakteret që duhet të jenë aty, dhe jo kode si & mdash ; ose & # x3c0 ; .

Njëherë e një kohë, zhvilluesit e faqeve të internetit u detyruan të përdornin zëvendësime të tilla të rënda, sepse kodimi UTF-8 nuk ekzistonte ende. Por tani mund të harroni si zëvendësimet ashtu edhe kodimet e vjetra.

Mitet për disavantazhet

Pasi të kemi diskutuar avantazhet e UTF-8, ia vlen të flasim për disavantazhet e këtij kodimi. Dhe imagjinoni, ajo nuk ka asnjë mangësi. Ka vetëm mite dhe legjenda, si dhe thashetheme dhe spekulime të përhapura nga konservatorë myshk dhe retrogradë të tmerrshëm. Shumë vite më parë ka pasur disa mangësi, por tani ato janë zhytur në harresë.

Shfletuesit nuk e mbështesin mirë UTF-8?

Thuhet se disa përdorues kanë ende shfletues më të vjetër që nuk janë në gjendje të japin faqe në UTF‑8. Kjo është absurditet i plotë. Edhe Internet Explorer 4 dhe Netscape 4, të cilët askush nuk i ka përdorur për një kohë të gjatë, e kuptojnë në mënyrë të përsosur UTF-8. Dhe shfletues më modernë - edhe më shumë.

UTF-8 nuk është aspak një kodim "i ri" ose "i ri"; ai është përdorur me sukses për më shumë se dhjetë vjet. Nëse një zhvillues i caktuar mësoi për të kohët e fundit ose ende nuk e di, kjo është mungesë e kualifikimeve të tij, jo kodimi i tij.

Keni probleme me UTF-8 në serverin tuaj të internetit?

"Kam vendosur një faqe në UTF‑8 në server, por ajo shfaqet në rrëmujë," është se si ankohen ndonjëherë zhvilluesit fillestarë. Në fakt, ky problem ndodh me një shumëllojshmëri të gjerë kodimesh dhe nuk lidhet me ndonjë veçori specifike të UTF-8. Problemi këtu është se faqja është bërë në një kodim, dhe serveri raporton një tjetër në titujt HTTP. Është e nevojshme të sillni cilësimet e serverit në përputhje me kodimin aktual të faqeve në internet. E përsëris që kjo duhet të bëhet me çdo kodim.

A zënë shumë hapësirë ​​skedarët UTF‑8?

Ata thonë se dokumentet në UTF-8 janë dy herë më të mëdha se në kodimet më të vjetra. Ky është një mit nga kategoria "Kam dëgjuar një zile, por nuk e di se ku është." Në fakt, nuk është e nevojshme një herë në një kohë. Për shembull, nëse një dokument përbëhet vetëm nga karaktere ASCII (shkronja latine, numra, shenja pikësimi, etj.), atëherë në kodimin UTF‑8 ai do të zërë saktësisht të njëjtin numër bajtësh si në çdo tjetër. Nëse një dokument përmban vetëm shkronja të alfabetit rus dhe asnjë karakter tjetër (gjë që, siç e shihni, është mjaft e rrallë), atëherë në UTF‑8 ai në të vërtetë do të bëhet dy herë më i madh. Dhe nëse përmban, për shembull, pjesë të barabarta shkronja ruse dhe arabe, në UTF‑8 do të jetë gjysma e madhe sa, për shembull, në Windows‑1251 ose Asmo‑708.

Faqja që po lexoni tani është 35 kilobajt në kodimin UTF‑8. Dhe nëse e përktheni atë, për shembull, në Windows-1251, ai do të zërë 26 kilobajt. Meqë ra fjala, kur krahasoni faqet, shihni se sa më i lehtë është për t'u lexuar kodi në UTF‑8.

Kur flasim për "peshën" e faqeve në internet, duhet të theksohet se pjesa më e madhe e kësaj peshe zakonisht nuk është kodi HTML, por imazhet. (Dhe gjithashtu, ndoshta, objekte të tjera: video flash, skedarë JavaScript, etj.) Si rezultat, edhe në rastet kur një dokument UTF-8 zmadhohet, kjo është pothuajse e padukshme në sasinë totale të të dhënave. Sipas mendimit tim, bërja e kodit "të fryhet" me disa përqind është një çmim i lirë për të paguar për UTF-8 me të cilin filluam.

Ata që kujdesen për peshën duhet së pari të heqin atributet e vjetra të HTML (si cellpadding ose valign) dhe shenjat e egra për karakteret që nuk kanë nevojë për to (si & mdash ; për em dash ose & nbsp ; për hapësirë ​​që nuk prishet). Në të vërtetë, ndonjëherë arrin deri në çmenduri - dikush këmbëngul: "Unë nuk do të bëj faqe në UTF‑8, sepse i bën ato më të mëdha" - dhe në të njëjtën kohë ai krijon kode me atribute dhe zëvendësime të tmerrshme, të cilat pa to mund të jetë pesë herë më e shkurtër.

Gjuhët e programimit dhe bazat e të dhënave nga ana e serverit nuk e mbështesin mirë UTF-8?

Dikush do të thotë: “Kjo është e gjitha mirë përderisa kemi të bëjmë me faqe web statike. Por nëse përdorim PHP dhe MySQL, është më mirë të harrojmë UTF‑8.” Kjo gjithashtu nuk është e vërtetë. Në kohët e lashta, me të vërtetë, disa gjuhë programimi dhe sisteme të menaxhimit të bazës së të dhënave nuk mund të punonin me UTF‑8. Por tani të gjitha gjuhët moderne të programimit dhe bazat e të dhënave janë në marrëdhënie të shkëlqyera me këtë kodim. Por nuk duhet të përdorni gjuhë dhe baza të të dhënave të vjetruara: sa më të vjetra të jenë sistemet tuaja, aq më e lehtë është t'i hakoni ato.

Sidoqoftë, mos harroni se bota po ndryshon vazhdimisht. Ndoshta në të ardhmen do të shfaqen arsye që do të na detyrojnë të braktisim UTF-8 dhe të kalojmë në një kodim edhe më të avancuar. Kur kjo të ndodhë, unë patjetër do t'ju njoftoj.

Artikujt më të mirë mbi këtë temë