Shtëpi Lule shumëvjeçare Dekodimi i personazheve në Rusisht. Çfarë është kodimi ANSI dhe me çfarë përdoret? Shfaqja e gabuar e karaktereve

Dekodimi i personazheve në Rusisht. Çfarë është kodimi ANSI dhe me çfarë përdoret? Shfaqja e gabuar e karaktereve

Kodimi i faqes (Encoding) përfaqëson korrespondencën e një serie numrash me simbolet (numrat, shkronjat, shenjat dhe karakteret e tjera të veçanta). Kodimet më të zakonshme janë ASCII, së bashku me Unicode UTF-8 dhe Windows-1251. Në përmbajtje, një meta etiketë e veçantë është përgjegjëse për kodimin: , i cili cakton një lloj kodi specifik për faqet. Në këtë rast është UTF-8 Unicode.

Me fjalë të thjeshta, këto janë simbole dhe numra standardë që korrespondojnë me një lloj të caktuar grupi shkronjash, numrash, shenjash dhe elementësh të tjerë të shkruar. Më shpesh, një sajt përdor një lloj kodimi, por ka përjashtime kur disa kodime mund të instalohen menjëherë. Megjithatë, kjo mund të çojë në shfaqjen e gabuar të të gjithë burimit të internetit. Shumë site përdorin standardin e kodimit - UTF-8, pasi ky lloj kodi mbështetet nga shumë shfletues, motorë kërkimi, serverë dhe platforma të tjera të njohura. Shumë shpesh ka situata kur kodimi i specifikuar në faqen e internetit nuk përputhet me atë të instaluar në server. Arsyeja kryesore për këtë fenomen është se ofruesi nuk mbështet llojin e dhënë të kodimit, si rezultat i të cilit ai dërgon "të tijin", gjë që në fakt çon në shfaqjen e gabuar të informacionit. Një kodim është një tabelë që përshkruan çdo korrespondencë midis një karakteri specifik dhe një numri. Çdo simbol që është i dukshëm në faqe përfaqëson për kompjuterin vetëm një grup bitësh (një grup të caktuar zerosh dhe të tjerë).

Llojet e kodimeve të faqeve

Ekzistojnë disa lloje të kodimeve në botën e internetit:

  • ASCII është kodimi i parë që u miratua nga Instituti Kombëtar Amerikan i Standardeve Botërore. Për kodim janë përdorur vetëm 7 bit, ku për herë të parë vendosen 128 vlera në alfabetin anglez, si dhe të gjithë numrat, shenjat dhe simbolet. Ky kodim nuk është universal dhe është përdorur më shpesh në faqet në gjuhën angleze.
  • Cirilik është një version vërtet vendas. Kodimi përdorte pjesën e dytë të tabelës së kodit kryesor, ose më mirë karaktere nga 129 në 256. Përdoret në faqet dhe bloget në gjuhën ruse.
  • Kodimet 1250-1258 (sistemet MS Windows dhe Windows) janë kodime standarde 8-bitësh që u shfaqën menjëherë pas lëshimit të sistemit operativ të mirënjohur Microsoft Windows. Numrat 1250 deri në 1258 i drejtohen gjuhës së përdorur nga kodimi. 1250 janë gjuhët e Evropës qendrore, dhe 1251 është një variant për alfabetin cirilik.
  • KOI8 – qëndron për kodin e shkëmbimit të informacionit 8-bit. Në mënyrë tipike, standardet cirilike ruse përdoren në Unix dhe sisteme të ngjashme, ku standardi KOI-7, KOI8-R dhe KOI8-U është në fuqi.
  • Unicode (emri origjinal Unicode) është një standard i njohur për kodimin e karaktereve, i cili ju lejon të përshkruani karakteret e fjalë për fjalë të të gjitha gjuhëve të botës. Shpesh shënohet me "U+xxxx", ku "xxxx" janë vlera heksadecimal. Familja më e zakonshme e këtij kodimi është UTF (Unicode-Transformation Format), domethënë UTF-8, 16 dhe 32.

Çdo pamje individuale mund të përdoret drejtpërdrejt në çdo faqe interneti.

Kodimet universale dhe të njohura

Sot, kodimi më i popullarizuar dhe më i njohur është UTF-8, dhe falë tij është e mundur të sigurohet përputhshmëri maksimale me të gjitha sistemet e vjetra që përdornin lloje konvencionale të karaktereve 8-bit. Kodimi UTF-8 përfshin shumicën e faqeve në internet dhe ky standard konsiderohet universal. UTF-8 mbështet alfabetin cirilik dhe latin.

Përshëndetje, të dashur lexues të faqes së blogut. Sot do t'ju flasim se nga vijnë krakozyabrs në një faqe interneti dhe në programe, cilat kodime teksti ekzistojnë dhe cilat duhet të përdoren. Le të hedhim një vështrim më të afërt në historinë e zhvillimit të tyre, duke filluar nga ASCII bazë, si dhe versionet e tij të zgjeruara CP866, KOI8-R, Windows 1251 dhe duke përfunduar me kodimet moderne të konsorciumit Unicode UTF 16 dhe 8.

Për disa, ky informacion mund të duket i panevojshëm, por a e dini se sa pyetje marr posaçërisht në lidhje me krakoziabrët zvarritës (grup karakteresh të palexueshëm). Tani do të kem mundësinë t'i referoj të gjithë në tekstin e këtij artikulli dhe të gjej gabimet e mia. Epo, përgatituni të përthithni informacionin dhe përpiquni të ndiqni rrjedhën e tregimit.

ASCII - kodimi bazë i tekstit për alfabetin latin

Zhvillimi i kodimeve të tekstit ndodhi njëkohësisht me formimin e industrisë së IT, dhe gjatë kësaj kohe ata arritën të pësojnë mjaft ndryshime. Historikisht, gjithçka filloi me EBCDIC, i cili ishte mjaft disonant në shqiptimin rus, gjë që bëri të mundur kodimin e shkronjave të alfabetit latin, numrave arabë dhe shenjave të pikësimit me karaktere kontrolli.

Por megjithatë, pika fillestare për zhvillimin e kodimeve moderne të tekstit duhet të konsiderohet e famshme ASCII(Kodi Standard Amerikan për Shkëmbimin e Informacionit, i cili në Rusisht zakonisht shqiptohet si "aski"). Ai përshkruan 128 karakteret e para më të përdorura nga përdoruesit anglishtfolës - , numrat arabë dhe shenjat e pikësimit.

Këto 128 karaktere të përshkruara në ASCII përfshinin gjithashtu disa karaktere shërbimi si kllapa, shenja hash, yje, etj. Në fakt, ju mund t'i shihni ato vetë:

Janë këta 128 karaktere nga versioni origjinal i ASCII që janë bërë standard dhe në çdo kodim tjetër do t'i gjeni patjetër dhe do të shfaqen në këtë renditje.

Por fakti është se me një bajt informacioni mund të kodoni jo 128, por deri në 256 vlera të ndryshme (dy në fuqinë e tetë janë të barabartë me 256), kështu që pas versionit bazë të Asuka një seri e tërë kodime të zgjeruara ASCII, në të cilën, përveç 128 karaktereve bazë, ishte gjithashtu e mundur të kodoheshin simbole të kodimit kombëtar (për shembull, rusisht).

Këtu, ndoshta ia vlen të thuhet pak më shumë për sistemet e numrave që përdoren në përshkrim. Së pari, siç e dini të gjithë, një kompjuter punon vetëm me numra në sistemin binar, përkatësisht me zero dhe njëshe ("algjebra Boolean", nëse dikush e ka marrë atë në një institut apo shkollë). , secila prej të cilave është dy në fuqi, duke filluar nga zero, dhe deri në dy në të shtatën:

Nuk është e vështirë të kuptohet se të gjitha kombinimet e mundshme të zerave dhe njësheve në një dizajn të tillë mund të jenë vetëm 256. Shndërrimi i një numri nga sistemi binar në sistemin dhjetor është mjaft i thjeshtë. Thjesht duhet të shtoni të gjitha fuqitë e dy me një mbi to.

Në shembullin tonë, kjo rezulton të jetë 1 (2 në fuqinë e zeros) plus 8 (dy në fuqinë e 3), plus 32 (dy në fuqinë e pestë), plus 64 (në fuqinë e gjashtë), plus 128 (në fuqinë e shtatë). Totali është 233 në shënimin dhjetor. Siç mund ta shihni, gjithçka është shumë e thjeshtë.

Por nëse shikoni nga afër tabelën me karaktere ASCII, do të shihni se ato përfaqësohen në kodim heksadecimal. Për shembull, "ylli" korrespondon me numrin heksadecimal 2A në Aski. Ju ndoshta e dini se në sistemin heksadecimal të numrave, përveç numrave arabë, përdoren edhe shkronja latine nga A (do të thotë dhjetë) në F (do të thotë pesëmbëdhjetë).

Epo atëherë, për konvertimi i numrit binar në heksadecimal përdorni metodën e mëposhtme të thjeshtë dhe të dukshme. Çdo bajt informacioni është i ndarë në dy pjesë me katër bit, siç tregohet në pamjen e mësipërme të ekranit. Se. Në çdo gjysmë bajt, vetëm gjashtëmbëdhjetë vlera (dy deri në fuqinë e katërt) mund të kodohen në binar, të cilat lehtë mund të përfaqësohen si një numër heksadecimal.

Për më tepër, në gjysmën e majtë të bajtit, shkallët do të duhet të numërohen përsëri duke filluar nga zero, dhe jo siç tregohet në pamjen e ekranit. Si rezultat, përmes llogaritjeve të thjeshta, marrim se numri E9 është i koduar në pamjen e ekranit. Shpresoj që rrjedha e arsyetimit tim dhe zgjidhja e kësaj enigme të ishin të qarta për ju. Epo, tani le të vazhdojmë, në fakt, duke folur për kodimet e tekstit.

Versione të zgjeruara të kodimeve Asuka - CP866 dhe KOI8-R me pseudografikë

Pra, filluam të flasim për ASCII, i cili ishte, si të thuash, pika fillestare për zhvillimin e të gjitha kodimeve moderne (Windows 1251, Unicode, UTF 8).

Fillimisht, ai përmbante vetëm 128 karaktere të alfabetit latin, numra arabë dhe diçka tjetër, por në versionin e zgjeruar u bë e mundur të përdoren të gjitha 256 vlerat që mund të kodohen në një bajt informacioni. Ato. U bë e mundur të shtoni simbole të shkronjave të gjuhës suaj në Aski.

Këtu do të duhet të dalim përsëri për të shpjeguar - pse na duhen fare kodimet? tekstet dhe pse është kaq e rëndësishme. Karakteret në ekranin e kompjuterit tuaj formohen në bazë të dy gjërave - grupe formash vektoriale (përfaqësime) të karaktereve të ndryshme (ato janë të vendosura në skedarë me ) dhe kodi që ju lejon të tërhiqni nga ky grup formash vektoriale (skedari i shkronjave ) pikërisht karakteri që do të duhet të futet në vendin e duhur.

Është e qartë se vetë fontet janë përgjegjës për format e vektorit, por sistemi operativ dhe programet e përdorura në të janë përgjegjës për kodimin. Ato. çdo tekst në kompjuterin tuaj do të jetë një grup bajtësh, secili prej të cilëve kodon një karakter të vetëm të këtij teksti.

Programi që shfaq këtë tekst në ekran (redaktori i tekstit, shfletuesi, etj.), kur analizon kodin, lexon kodimin e karakterit tjetër dhe kërkon formën përkatëse vektoriale në skedarin e shkronjave të kërkuara, i cili është i lidhur për të shfaqur këtë dokument teksti. Gjithçka është e thjeshtë dhe banale.

Kjo do të thotë që për të koduar çdo karakter që na nevojitet (për shembull, nga alfabeti kombëtar), duhet të plotësohen dy kushte - forma vektoriale e këtij karakteri duhet të jetë në fontin e përdorur dhe ky karakter mund të kodohet në kodime të zgjeruara ASCII në një bajt. Prandaj, ka një grup të tërë opsionesh të tilla. Vetëm për kodimin e karaktereve të gjuhës ruse, ekzistojnë disa lloje të Aska të zgjeruar.

Për shembull, u shfaq fillimisht CP866, i cili kishte aftësinë për të përdorur karaktere nga alfabeti rus dhe ishte një version i zgjeruar i ASCII.

Ato. pjesa e sipërme e saj përkoi plotësisht me versionin bazë të Aska (128 karaktere latine, numra dhe gërmadha të tjera), i cili është paraqitur në pamjen e ekranit pak më lart, por pjesa e poshtme e tabelës me kodimin CP866 kishte pamjen e treguar në pamjen e ekranit pak më poshtë dhe ju lejoi të kodoni 128 shenja të tjera (shkronja ruse dhe të gjitha llojet e pseudografisë):

Shikoni, në kolonën e djathtë numrat fillojnë me 8, sepse... numrat nga 0 në 7 i referohen pjesës bazë të ASCII (shih pamjen e parë të ekranit). Se. Shkronja ruse "M" në CP866 do të ketë kodin 9C (ai ndodhet në kryqëzimin e rreshtit përkatës me 9 dhe kolonës me numrin C në sistemin heksadecimal të numrave), i cili mund të shkruhet në një bajt informacioni, dhe nëse ka një font të përshtatshëm me karaktere ruse, kjo letër pa probleme do të shfaqet në tekst.

Nga ka ardhur kjo shumë? pseudografia në CP866? E gjithë çështja është se ky kodim për tekstin rus u zhvillua në ato vite të ashpra kur sistemet operative grafike nuk ishin aq të përhapura sa janë tani. Dhe në Dosa dhe sistemet operative të tekstit të ngjashëm, pseudografia bëri të mundur që të paktën disi të diversifikohej dizajni i teksteve, dhe për këtë arsye CP866 dhe të gjithë bashkëmoshatarët e tij nga kategoria e versioneve të zgjeruara të Asuka janë të bollshme në të.

CP866 u shpërnda nga IBM, por përveç kësaj, u zhvilluan një numër kodimesh për karakteret e gjuhës ruse, për shembull, i njëjti lloj (ASCII i zgjeruar) mund t'i atribuohet KOI8-R:

Parimi i funksionimit të tij mbetet i njëjtë me atë të CP866 të përshkruar pak më herët - çdo karakter i tekstit është i koduar nga një bajt i vetëm. Pamja e ekranit tregon gjysmën e dytë të tabelës KOI8-R, sepse gjysma e parë është plotësisht në përputhje me Asuka bazë, e cila tregohet në pamjen e parë të ekranit në këtë artikull.

Ndër veçoritë e kodimit KOI8-R, mund të vërehet se shkronjat ruse në tabelën e tij nuk janë në rend alfabetik, siç, për shembull, ata e bënë atë në CP866.

Nëse shikoni pamjen e parë të ekranit (të pjesës bazë, e cila përfshihet në të gjitha kodimet e zgjeruara), do të vini re se në KOI8-R shkronjat ruse ndodhen në të njëjtat qeliza të tabelës si shkronjat përkatëse të alfabetit latin. nga pjesa e parë e tabelës. Kjo u bë për lehtësinë e kalimit nga karakteret ruse në latine duke hedhur vetëm një bit (dy në fuqinë e shtatë ose 128).

Windows 1251 - versioni modern i ASCII dhe pse dalin çarjet

Zhvillimi i mëtejshëm i kodimeve të tekstit ishte për shkak të faktit se sistemet operative grafike po fitonin popullaritet dhe nevoja për të përdorur pseudografinë në to u zhduk me kalimin e kohës. Si rezultat, u ngrit një grup i tërë që, në thelb, ishin ende versione të zgjeruara të Asuka (një karakter i tekstit është i koduar me vetëm një bajt informacioni), por pa përdorimin e simboleve pseudografike.

Ato i përkisnin të ashtuquajturave kodime ANSI, të cilat u zhvilluan nga Instituti Amerikan i Standardeve. Në gjuhën e zakonshme, emri cirilik u përdor gjithashtu për versionin me mbështetjen e gjuhës ruse. Një shembull i kësaj do të ishte.

Ai ndryshonte në mënyrë të favorshme nga CP866 dhe KOI8-R të përdorura më parë në atë që vendin e simboleve pseudografike në të e zunë simbolet që mungonin të tipografisë ruse (përveç shenjës së theksit), si dhe simbolet e përdorura në gjuhët sllave afër Rusisht (ukrainas, bjellorusisht, etj.):

Për shkak të një bollëk të tillë kodimesh në gjuhën ruse, prodhuesit e shkronjave dhe prodhuesit e softuerëve vazhdimisht kishin dhimbje koke, dhe ju dhe unë, të dashur lexues, shpesh i kishim të njëjtat famëkeqe krakozyabry kur pati ngatërrim me versionin e përdorur në tekst.

Shumë shpesh ato dolën kur dërgonin dhe merrnin mesazhe me postë elektronike, gjë që përfshinte krijimin e tabelave shumë komplekse të konvertimit, të cilat, në fakt, nuk mund ta zgjidhnin këtë problem në thelb, dhe përdoruesit shpesh përdornin për korrespondencë për të shmangur mashtrimet famëkeqe kur përdornin. Kodimet ruse si CP866, KOI8-R ose Windows 1251.

Në fakt, çarjet që shfaqeshin në vend të tekstit rus ishin rezultat i përdorimit të gabuar të kodimit të kësaj gjuhe, i cili nuk korrespondonte me atë në të cilin ishte koduar fillimisht mesazhi me tekst.

Le të themi që nëse përpiqeni të shfaqni karaktere të koduara duke përdorur CP866 duke përdorur tabelën e kodit të Windows 1251, atëherë do të dalin të njëjtat gërmadha (një grup karakteresh të pakuptimta), duke zëvendësuar plotësisht tekstin e mesazhit.

Një situatë e ngjashme lind shumë shpesh në forume ose blogje, kur teksti me karaktere ruse ruhet gabimisht në kodimin e gabuar që përdoret në sit si parazgjedhje, ose në redaktuesin e gabuar të tekstit, i cili shton gags në kod që nuk janë të dukshëm për syri i lirë.

Në fund, shumë njerëz u lodhën nga kjo situatë me shumë kodime dhe rrëmujë vazhdimisht, dhe u shfaqën parakushtet për krijimin e një variacioni të ri universal që do të zëvendësonte të gjitha ato ekzistuese dhe do të zgjidhte përfundimisht problemin me pamjen. e teksteve të palexueshme. Përveç kësaj, ekzistonte problemi i gjuhëve si kineze, ku kishte shumë më tepër karaktere gjuhësore se 256.

Unicode - kodime universale UTF 8, 16 dhe 32

Këto mijëra karaktere të grupit të gjuhëve të Azisë Juglindore nuk mund të përshkruheshin në një bajt informacioni që ishte ndarë për kodimin e karaktereve në versionet e zgjeruara të ASCII. Si rezultat, u krijua një konsorcium i quajtur Unicode(Unicode - Unicode Consortium) me bashkëpunimin e shumë drejtuesve të industrisë së IT (ata që prodhojnë softuer, që kodojnë harduerin, që krijojnë fontet), të cilët ishin të interesuar për shfaqjen e një kodimi universal të tekstit.

Variacioni i parë i lëshuar nën kujdesin e Konsorciumit Unicode ishte UTF 32. Numri në emrin e kodimit nënkupton numrin e biteve që përdoren për të koduar një karakter. 32 bit janë të barabartë me 4 bajtë informacion që do të nevojiten për të koduar një karakter të vetëm në kodimin e ri universal UTF.

Si rezultat, i njëjti skedar teksti i koduar në versionin e zgjeruar të ASCII dhe në UTF-32, në rastin e fundit, do të ketë një madhësi (peshë) katër herë më të madhe. Kjo është e keqe, por tani kemi mundësinë të kodojmë duke përdorur YTF një numër karakteresh të barabartë me dy me fuqinë tridhjetë e dytë ( miliarda personazhe, e cila do të mbulojë çdo vlerë vërtet të nevojshme me një diferencë kolosale).

Por shumë vende me gjuhë të grupit evropian nuk kishin nevojë të përdornin fare një numër kaq të madh karakteresh në kodim, megjithatë, kur përdornin UTF-32, ata pa asnjë arsye morën një rritje katërfish në peshën e dokumenteve të tekstit, dhe si rezultat, një rritje në vëllimin e trafikut të internetit dhe vëllimit të të dhënave të ruajtura. Kjo është shumë, dhe askush nuk mund të përballonte mbeturina të tilla.

Si rezultat i zhvillimit të Unicode, UTF-16, e cila doli të ishte aq e suksesshme sa u miratua si parazgjedhje si hapësira bazë për të gjithë karakteret që përdorim. Ai përdor dy bajt për të koduar një karakter. Le të shohim se si duket kjo gjë.

Në sistemin operativ Windows, mund të ndiqni shtegun "Fillimi" - "Programet" - "Aksesorët" - "Mjetet e Sistemit" - "Tabela e Karaktereve". Si rezultat, do të hapet një tabelë me format vektoriale të të gjitha shkronjave të instaluara në sistemin tuaj. Nëse zgjidhni grupin e karaktereve Unicode në "Opsionet e avancuara", do të mund të shihni për secilin font veçmas të gjithë gamën e karaktereve të përfshira në të.

Nga rruga, duke klikuar në ndonjë prej tyre, mund të shihni dy bajtin e tij kodi në formatin UTF-16, i përbërë nga katër shifra heksadecimal:

Sa karaktere mund të kodohen në UTF-16 duke përdorur 16 bit? 65,536 (dy në fuqinë e gjashtëmbëdhjetë), dhe ky është numri që u miratua si hapësira bazë në Unicode. Përveç kësaj, ka mënyra për të koduar rreth dy milionë karaktere duke e përdorur atë, por ato ishin të kufizuara në një hapësirë ​​të zgjeruar prej një milion karakteresh teksti.

Por edhe ky version i suksesshëm i kodimit Unicode nuk u solli shumë kënaqësi atyre që shkruan, të themi, programe vetëm në anglisht, sepse për ta, pas kalimit nga versioni i zgjeruar i ASCII në UTF-16, pesha e dokumenteve u dyfishua ( një bajt për karakter në Aski dhe dy bajt për të njëjtin karakter në YUTF-16).

Ishte pikërisht për të kënaqur të gjithë dhe gjithçka në konsorciumin Unicode që u vendos të dilte kodimi me gjatësi të ndryshueshme. U quajt UTF-8. Pavarësisht tetë në emër të tij, në fakt ka një gjatësi të ndryshueshme, d.m.th. Çdo karakter i tekstit mund të kodohet në një sekuencë prej një deri në gjashtë bajt në gjatësi.

Në praktikë, UTF-8 përdor vetëm diapazonin nga një deri në katër bajt, sepse përtej katër bajteve të kodit nuk është më as teorikisht e mundur të imagjinohet asgjë. Të gjitha karakteret latine në të janë të koduara në një bajt, ashtu si në ASCII të mirë të vjetër.

Ajo që vlen të përmendet është se në rastin e kodimit vetëm të alfabetit latin, edhe ato programe që nuk kuptojnë Unicode do të lexojnë përsëri atë që është e koduar në YTF-8. Ato. pjesa kryesore e Asuka thjesht u transferua në këtë krijim të konsorciumit Unicode.

Karakteret cirilike në UTF-8 janë të koduara në dy bajt, dhe, për shembull, karakteret gjeorgjiane janë të koduara në tre bajtë. Konsorciumi Unicode, pasi krijoi UTF 16 dhe 8, zgjidhi problemin kryesor - tani kemi fontet kanë një hapësirë ​​të vetme kodi. Dhe tani prodhuesit e tyre mund ta mbushin atë vetëm me forma vektoriale të karaktereve të tekstit bazuar në pikat e forta dhe aftësitë e tyre. Tani ata vijnë edhe në grupe.

Në "Tabela e karaktereve" më sipër mund të shihni se shkronja të ndryshme mbështesin numra të ndryshëm karakteresh. Disa fonte të pasura me Unicode mund të jenë mjaft të rënda. Por tani ato ndryshojnë jo në faktin se janë krijuar për kodime të ndryshme, por në faktin se prodhuesi i shkronjave ka ose nuk e ka mbushur plotësisht hapësirën e kodit të vetëm me forma të caktuara vektoriale.

Fjalë të çmendura në vend të shkronjave ruse - si ta rregulloni atë

Le të shohim tani se si shfaqen krakozyabrs në vend të tekstit ose, me fjalë të tjera, si zgjidhet kodimi i saktë për tekstin rus. Në fakt, ai vendoset në programin në të cilin krijoni ose redaktoni pikërisht këtë tekst ose kod duke përdorur fragmente teksti.

Për të redaktuar dhe krijuar skedarë teksti, unë personalisht përdor një shumë të mirë, për mendimin tim, . Sidoqoftë, ai mund të nxjerrë në pah sintaksën e qindra gjuhëve të tjera të programimit dhe shënjimit, dhe gjithashtu ka aftësinë për t'u zgjeruar duke përdorur shtojca. Lexoni një përmbledhje të detajuar të këtij programi të mrekullueshëm në lidhjen e dhënë.

Në menynë e sipërme të Notepad++ ka një artikull "Encodings", ku do të keni mundësinë të konvertoni një opsion ekzistues në atë që përdoret si parazgjedhje në faqen tuaj:

Në rastin e një sajti në Joomla 1.5 dhe më të lartë, si dhe në rastin e një blogu në WordPress, duhet të zgjidhni opsionin për të shmangur shfaqjen e çarjeve UTF 8 pa BOM. Çfarë është prefiksi BOM?

Fakti është se kur ata po zhvillonin kodimin YUTF-16, për disa arsye ata vendosën t'i bashkëngjitnin një gjë të tillë si aftësia për të shkruar kodin e karakterit si në sekuencë të drejtpërdrejtë (për shembull, 0A15) dhe në të kundërt (150A) . Dhe në mënyrë që programet të kuptojnë saktësisht se në çfarë sekuence për të lexuar kodet, ajo u shpik BOM(Byte Order Mark ose, me fjalë të tjera, nënshkrimi), i cili u shpreh duke shtuar tre bajt shtesë në fillimin e dokumenteve.

Në kodimin UTF-8, nuk parashikohej asnjë BOM në konsorciumin Unicode, dhe për këtë arsye shtimi i një nënshkrimi (ato tre bajt famëkeq shtesë në fillim të dokumentit) thjesht parandalon disa programe të lexojnë kodin. Prandaj, gjatë ruajtjes së skedarëve në UTF, gjithmonë duhet të zgjedhim opsionin pa BOM (pa nënshkrim). Pra, ju jeni paraprakisht mbroni veten nga zvarritja e krakozyabrs.

Ajo që vlen të përmendet është se disa programe në Windows nuk mund ta bëjnë këtë (ata nuk mund të ruajnë tekstin në UTF-8 pa një BOM), për shembull, i njëjti Notepad famëkeq i Windows. Ai e ruan dokumentin në UTF-8, por gjithsesi shton nënshkrimin (tre bajtë shtesë) në fillim të tij. Për më tepër, këto byte do të jenë gjithmonë të njëjta - lexoni kodin në sekuencë të drejtpërdrejtë. Por në serverë, për shkak të kësaj gjëje të vogël, mund të lindë një problem - mashtruesit do të dalin.

Prandaj, në asnjë rrethanë Mos përdorni fletore të rregullt të Windows për të modifikuar dokumentet në faqen tuaj nëse nuk dëshironi që të shfaqen ndonjë çarje. Unë e konsideroj redaktuesin e përmendur tashmë Notepad ++ si opsionin më të mirë dhe më të thjeshtë, i cili praktikisht nuk ka të meta dhe përbëhet vetëm nga avantazhe.

Në Notepad++, kur zgjidhni një kodim, do të keni mundësinë të konvertoni tekstin në kodimin UCS-2, i cili është shumë afër natyrës me standardin Unicode. Gjithashtu në Notepad do të mund të kodohet teksti në ANSI, d.m.th. në lidhje me gjuhën ruse, ky do të jetë Windows 1251, të cilin e kemi përshkruar tashmë më lart.

Është i regjistruar në regjistrin e sistemit tuaj operativ Windows - cilin kodim të zgjidhni në rastin e ANSI, cilin të zgjidhni në rastin e OEM (për gjuhën ruse do të jetë CP866). Nëse vendosni një gjuhë tjetër të paracaktuar në kompjuterin tuaj, atëherë këto kodime do të zëvendësohen me të ngjashme nga kategoria ANSI ose OEM për të njëjtën gjuhë.

Pasi ta ruani dokumentin në Notepad++ në kodimin që ju nevojitet ose të hapni dokumentin nga faqja për modifikim, mund ta shihni emrin e tij në këndin e poshtëm djathtas të redaktuesit:

Për të shmangur skuqjet Përveç veprimeve të përshkruara më lart, do të jetë e dobishme të shkruani informacione në lidhje me këtë kodim në kokën e kodit burimor të të gjitha faqeve të faqes, në mënyrë që të mos ketë konfuzion në server ose host lokal.

Në përgjithësi, të gjitha gjuhët e shënjimit të hipertekstit përveç Html përdorin një deklaratë të veçantë xml, e cila specifikon kodimin e tekstit.

Para se të analizojë kodin, shfletuesi e di se cili version është duke u përdorur dhe se si saktësisht duhet të interpretojë kodet e karaktereve të asaj gjuhe. Por ajo që vlen të përmendet është se nëse e ruani dokumentin në Unicode të paracaktuar, atëherë kjo deklaratë xml mund të hiqet (kodimi do të konsiderohet UTF-8 nëse nuk ka BOM ose UTF-16 nëse ka një BOM).

Në rastin e një dokumenti të gjuhës Html, kodimi përdoret për të treguar Meta element, i cili shkruhet midis etiketave të hapjes dhe mbylljes së kokës:

... ...

Kjo hyrje është mjaft e ndryshme nga ajo e miratuar, por është plotësisht në përputhje me standardin e ri Html 5 që po prezantohet ngadalë dhe do të kuptohet plotësisht saktë nga çdo shfletues i përdorur aktualisht.

Në teori, do të ishte më mirë të vendosni një element Meta që tregon kodimin e dokumentit Html sa më lart që të jetë e mundur në kokën e dokumentit në mënyrë që në momentin e takimit të karakterit të parë në tekst jo nga ANSI bazë (të cilat lexohen gjithmonë saktë dhe në çdo variacion), shfletuesi duhet të ketë tashmë informacion se si të interpretojë kodet e këtyre karaktereve.

Paç fat! Shihemi së shpejti në faqet e faqes së blogut

Ju mund të jeni të interesuar

Cilat janë adresat URL, si ndryshojnë lidhjet absolute dhe relative për një sajt?
OpenServer - një server modern lokal dhe një shembull se si ta përdorni atë për të instaluar WordPress në një kompjuter
Çfarë është Chmod, çfarë lejesh për t'u caktuar skedarëve dhe dosjeve (777, 755, 666) dhe si ta bëjmë atë nëpërmjet PHP
Kërkimi Yandex sipas faqes dhe dyqanit në internet

Më vonë ASCII u zgjerua (fillimisht nuk përdori të gjitha 8 bitet), kështu që u bë e mundur të përdoren jo 128, por 256 (2 deri në fuqinë e 8-të) karaktere të ndryshme që mund të kodohen në një bajt informacioni.
Ky përmirësim bëri të mundur shtimin në kodim ASCII simbolet e gjuhëve kombëtare të vendeve të ndryshme, përveç alfabetit tashmë ekzistues latin.
Opsione të zgjeruara të kodimit ASCII Ka shumë prej tyre për faktin se ka edhe shumë gjuhë në botë. Unë mendoj se shumë prej jush kanë dëgjuar për një kodim të tillë si KOI8 (Kodi i Shkëmbimit të Informacionit, 8 bit) - ky është gjithashtu një kodim i zgjeruar ASCII. KOI8 përfshinte numra, shkronja të alfabetit latin dhe rus, si dhe shenja pikësimi, karaktere speciale dhe pseudografike.

Kodimi ISO

Organizata Ndërkombëtare e Standardeve ka krijuar një sërë kodimesh për alfabete/gjuhë të ndryshme.

Kodimi i serisë ISO 8859

Kodimi Përshkrim
ISO 8859-1 (latinisht-1) Latinishtja e zgjeruar, duke përfshirë karaktere nga shumica e gjuhëve të Evropës Perëndimore (anglisht, danez, irlandez, islandisht, spanjisht, italisht, gjermanisht, norvegjez, portugalisht, romanisht, faroez, suedisht, gaelicisht skocez dhe pjesë të holandishtes, finlandishtes, frëngjishtes), si si dhe disa gjuhë të Evropës Lindore (Shqipe) dhe Afrikane (Afrikane, Suahili). Latin-1 i mungon shenja e euros dhe shkronja e madhe Ÿ. Kjo faqe kodi konsiderohet kodimi i paracaktuar për dokumentet HTML dhe mesazhet e emailit. Gjithashtu, 256 karakteret e para të Unicode korrespondojnë me këtë faqe kodi.
ISO 8859-2 (latinisht-2) Latinishtja e zgjeruar, duke përfshirë karaktere nga gjuhët e Evropës Qendrore dhe Lindore (boshnjake, hungareze, polake, sllovake, sllovene, kroate, çeke). Latin-2, si Latin-1, i mungon shenja e euros.
ISO 8859-3 (Latine-3) Latinishtja e zgjeruar, duke përfshirë karaktere nga gjuhët e Evropës Jugore (malteze, turke dhe esperanto).
ISO 8859-4 (Latine-4) Latinishtja e zgjeruar, duke përfshirë karaktere nga gjuhët e Evropës Veriore (gjuhët greke, estoneze, letonisht, lituanisht dhe sami).
ISO 8859-5 (latinisht/cirilik) cirilik, duke përfshirë karaktere nga gjuhët sllave (bjellorusisht, bullgarisht, maqedonisht, rusisht, serbisht dhe pjesërisht ukrainisht).
ISO 8859-6 (Latine/Arabisht) Simbolet e përdorura në arabisht. Karakteret nga gjuhët e tjera me shkrim arab nuk mbështeten. Për të shfaqur saktë tekstin ISO 8859-6 kërkohet mbështetje për shkrimin me dy drejtime dhe format e karaktereve të ndjeshme ndaj kontekstit.
ISO 8859-7 (Latine/Greqisht) Simbolet e gjuhës moderne greke. Mund të përdoret gjithashtu për të shkruar tekste të greqishtes së vjetër në ortografi monotonike.
ISO 8859-8 (latinisht/hebraisht) Simbolet e hebraishtes moderne. Përdoret në dy versione: me një renditje logjike karakteresh (kërkon mbështetje për shkrimin me dy drejtime) dhe me një renditje vizuale të karaktereve.
ISO 8859-9 (Latin-5) Një variant i latinishtes-1 që zëvendëson karakteret islandeze të përdorura rrallë me ato turke. Përdoret për gjuhët turke dhe kurde.
ISO 8859-10 (Latinisht-6) Një variant latin-4 më i përshtatshëm për gjuhët skandinave.
ISO 8859-11 (latinisht/tailandisht) Simbolet e gjuhës tajlandeze.
ISO 8859-13 (Latinisht-7) Varianti latin-4, më i përshtatshëm për gjuhët baltike.
ISO 8859-14 (Latinisht-8) Një shkrim i zgjeruar latin që përfshin personazhe nga gjuhët kelte si skocezisht gaelie dhe breton.
ISO 8859-15 (Latinisht-9) Një variant i Latin-1 që zëvendëson karakteret e përdorura rrallë me ato që nevojiten për të mbështetur plotësisht finlandishten, frëngjishten dhe estonezët. Për më tepër, shenja e euros iu shtua latinisht-9.
ISO 8859-16 (Latin-10) Latinishtja e zgjeruar, duke përfshirë karaktere nga gjuhët e Evropës Jugore dhe Lindore (shqip, hungarisht, italisht, polonisht, rumanisht, slloven, kroat), si dhe disa gjuhë të Evropës Perëndimore (irlandeze në drejtshkrimin e ri, gjermanisht, finlandisht, frëngjisht). Ashtu si Latin-9, Latin-10 shtoi shenjën e euros.

Për dokumentet në anglisht dhe në shumicën e gjuhëve të tjera të Evropës Perëndimore, kodimi mbështetet gjerësisht ISO-8859-1.

Në HTML ISO-8859-1është kodimi i paracaktuar (në XHTML dhe HTML5 kodimi i parazgjedhur është UTF-8).
Kur përdorni një kodim faqeje përveç ISO-8859-1, duhet ta tregoni këtë në etiketë .

Për HTML4:

Për HTML5:

Një shembull i kodimit ANSI është i njohur Windows-1251.

Windows-1251 ndryshon në mënyrë të favorshme nga kodimet e tjera cirilike 8-bit (të tilla si CP866 dhe ISO 8859-5) nga prania e pothuajse të gjithë karaktereve të përdorura në tipografinë ruse për tekst të thjeshtë (vetëm shenja e theksit mungon). Ai gjithashtu përmban të gjitha simbolet për gjuhët e tjera sllave: ukrainisht, bjellorusisht, serbisht, maqedonisht dhe bullgarisht.
Më poshtë janë vlerat dhjetore të karaktereve të kodimit Windows-1251.

Për të shfaqur simbolet e tabelës në një dokument HTML, përdorni sintaksën e mëposhtme:

& + kodi + ;

Windows encoding-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

20 AC

2030
Љ
409

2039
Њ
40 A
Ќ
40C
Ћ
40 B
Џ
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
Jo
401
©
A9
Є
404
«
AB
¬
A.C.
­
pas Krishtit
®
A.E.
Ї
407

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

B6
·
B7
e
451

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

C.
A
410
B
411

412
G
413
D
414
E
415
DHE
416
Z
417
DHE
418
Y
419
TE
41A
L
41B
M
41C
N
41D
RRETH
41E
P
41F

D.
R
420
ME
421
T
422
U
423
F
424
X
425
C
426
H
427
Sh
428
SCH
429
Kommersant
42A
Y
42B
b
42C
E
42D
YU
42E
I
42F

E.
A
430
b
431
V
432
G
433
d
434
e
435
dhe
436
h
437
Dhe
438
th
439
te
43A
l
43B
m
43C
n
43D
O
43E
P
43F

F.
R
440
Me
441
T
442

443
f
444
X
445
ts
446
h
447
w
448
sch
449
ъ
44A
s
44B
b
44C
uh
44D
Ju
44E
I
44F

Kodimi standard UNICODE

Unicode (Anglisht Unicode) është një standard i kodimit të karaktereve që ju lejon të përfaqësoni karakteret e pothuajse të gjitha gjuhëve të shkruara në botë, dhe karaktere të veçanta. Karakteret e përfaqësuara në Unicode janë të koduara si numra të plotë të panënshkruar. Unicode ka disa forma të paraqitjes së karaktereve në një kompjuter: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) dhe UTF-32 (UTF-32BE, UTF-32LE). (Anglisht: Formati i transformimit të Unicode - UTF).
UTF-8është një kodim aktualisht i zakonshëm që përdoret gjerësisht në sistemet operative dhe në ueb. Teksti i përbërë nga karaktere Unicode të numëruara më pak se 128 (zona e kodit U+0000 deri në U+007F) përmban karaktere të vendosura ASCII me kodet përkatëse. Më pas janë zonat e personazheve të skripteve të ndryshme, shenjat e pikësimit dhe simbolet teknike. Zonat e karaktereve me kode nga U+0400 në U+052F, nga U+2DE0 në U+2DFF, nga U+A640 në U+A69F ndahen për karakteret cirilike.

Kodimi UTF-8është universale dhe ka një rezervë mbresëlënëse për të ardhmen. Kjo e bën atë kodimin më të përshtatshëm për përdorim në internet.

Para se t'i përgjigjemi pyetjes se çfarë është kodimi ANSI Windows, së pari le t'i përgjigjemi një pyetjeje tjetër: "Çfarë është kodimi në përgjithësi?"

Çdo kompjuter, çdo sistem përdor një grup të caktuar karakteresh, në varësi të gjuhës së përdorur nga përdoruesi, kompetencave të tij profesionale dhe preferencave personale.

Përkufizimi i përgjithshëm i kodimit

Kështu, në rusisht, 33 simbole përdoren për të treguar shkronjat, në anglisht - 26. 10 shifra përdoren gjithashtu për numërim (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) dhe disa karaktere të veçanta , minus , hapësira, periudha, përqindja dhe kështu me radhë.

Secilit prej këtyre karaktereve i caktohet një numër serial duke përdorur një tabelë kodesh. Për shembull, shkronjës "A" mund t'i caktohet numri 1; "Z" - 26 e kështu me radhë.

Në fakt, numri që përfaqëson karakterin si një numër i plotë konsiderohet kodi i karakterit, dhe kodimi është, në përputhje me rrethanat, një grup karakteresh në një tabelë të tillë.

Shumëllojshmëri e pasur tabelash kodesh

Për momentin, ka një numër mjaft të madh kodimesh dhe tabelash kodesh të përdorura nga specialistë të ndryshëm: këto janë ASCII, të zhvilluara në vitin 1963 në Amerikë, dhe Windows-1251, i cili kohët e fundit ishte popullor falë Microsoft, KOI8-R dhe Guobiao - dhe shumë e shumë të tjerë dhe procesi i shfaqjes dhe vdekjes së tyre vazhdon edhe sot e kësaj dite.

Midis kësaj liste të madhe, dallohet veçanërisht i ashtuquajturi kodim ANSI.

Fakti është se në një kohë Microsoft krijoi një grup të tërë faqesh kodi:

Të gjithë ata quhen kolektivisht tabela e kodimit ANSI, ose faqja e kodit ANSI.

Fakt interesant: një nga tabelat e para të kodit ishte ASCII, e krijuar në vitin 1963 nga Instituti Kombëtar i Standardeve Amerikane, i shkurtuar si ANSI.

Ndër të tjera, ky kodim përmban edhe karaktere që nuk mund të printohen, të ashtuquajturat “Escape Sequences”, ose ESC, të cilat janë unike për të gjitha tabelat e karaktereve dhe shpesh janë të papajtueshme me njëra-tjetrën. Megjithatë, kur përdoren me shkathtësi, ato ju lejuan të fshihni dhe rivendosni kursorin, ta zhvendosni atë nga një pozicion në tekst në tjetrin, të vendosni skeda, të fshini një pjesë të dritares së terminalit në të cilën po punonit, të ndryshoni formatimin e tekstit në ekran. dhe ndryshoni ngjyrën (ose edhe vizatoni dhe shërbeni sinjale zanore!). Në vitin 1976, meqë ra fjala, kjo ishte një ndihmë mjaft e mirë për programuesit. Nga rruga, një terminal është një pajisje e nevojshme për hyrjen dhe daljen e informacionit. Në ato kohë të largëta, ishte një monitor dhe tastierë e lidhur me një kompjuter (kompjuter elektronik).

Shfaqja e gabuar e karaktereve

Fatkeqësisht, në të ardhmen, një sistem i tillë shkaktoi dështime të shumta në sisteme, duke shfaqur të ashtuquajturat krakozyabrs në vend të poezive të dëshiruara, burimeve të lajmeve ose përshkrimeve të lojërave të preferuara kompjuterike. - grupe karakteresh të pakuptimta dhe të palexueshme. Këto gabime të kudogjendura u shkaktuan thjesht duke u përpjekur për të shfaqur karaktere të koduara në një tabelë kodi duke përdorur një tjetër.

Më shpesh, ne ende hasim pasojat e leximit të gabuar të këtij kodimi në internet, kur për ndonjë arsye shfletuesi ynë nuk mund të përcaktojë me saktësi se cili nga kodimet e Windows **** është aktualisht në përdorim, për shkak të udhëzimeve të ueb-a mjeshtër i kodimit të përgjithshëm ANSI ose një kodim fillimisht i pasaktë, për shembull, 1252 në vend të 1521. Më poshtë është tabela e saktë e kodimit.

Tabela e kodimit cirilik ANSI, Windows-1251

Për më tepër, në vitin 1986, ANSI u zgjerua ndjeshëm, falë Ian E. Davis, i cili shkroi paketën Draw, e cila ju lejon jo vetëm të përdorni funksionet bazë, nga këndvështrimi ynë, por edhe plotësisht (ose pothuajse plotësisht) vizatoni!

Duke përmbledhur

Kështu, mund të shihni që kodimi ANSI, në fakt, megjithëse ishte një vendim mjaft i diskutueshëm, ruan pozicionin e tij.

Me kalimin e kohës, me ndihmën e entuziastëve, terminali i lashtë ANSI u zhvendos edhe në telefon!

E re në faqe

>

Më popullorja