Tabela standarde e pjesëve ascii. Kodimi i informacionit të tekstit

Unicode (Unicode në anglisht) është një standard kodimi i karaktereve. E thënë thjesht, kjo është një tabelë e korrespondencës midis karaktereve të tekstit (, shkronja, elementet e pikësimit) kodet binare. Kompjuteri kupton vetëm sekuencën e zerove dhe njësheve. Në mënyrë që të dijë se çfarë saktësisht duhet të shfaqë në ekran, është e nevojshme t'i caktoni secilit simbol numrin e tij unik. Në vitet tetëdhjetë, karakteret u koduan në një bajt, domethënë tetë bit (çdo bit është 0 ose 1). Kështu, rezultoi se një tabelë (aka kodim ose grup) mund të strehojë vetëm 256 karaktere. Kjo mund të mos mjaftojë as për një gjuhë. Prandaj, u shfaqën shumë kodime të ndryshme, konfuzioni me të cilin shpesh çonte në shfaqjen e disa gërmadhave të çuditshme në ekran në vend të tekstit të lexueshëm. Kërkohej një standard i vetëm, i cili u bë Unicode. Kodimi më i përdorur është UTF-8 (Unicode Transformation Format), i cili përdor 1 deri në 4 bajt për të përfaqësuar një karakter.

Simbolet

Karakteret në tabelat Unicode numërohen me numra heksadecimal. Për shembull, shkronja e madhe cirilike M është caktuar U+041C. Kjo do të thotë se ai qëndron në kryqëzimin e rreshtit 041 dhe kolonës C. Ju thjesht mund ta kopjoni atë dhe pastaj ta ngjisni diku. Për të mos gërmuar nëpër një listë shumë kilometrash, duhet të përdorni kërkimin. Kur të shkoni në faqen e simboleve, do të shihni numrin e tij Unicode dhe mënyrën se si është shkruar me shkronja të ndryshme. Mund ta futni vetë shenjën në shiritin e kërkimit, edhe nëse në vend të tij vizatohet një katror, ​​të paktën për të zbuluar se çfarë ishte. Gjithashtu, në këtë faqe ka grupe të veçanta (dhe të rastësishme) të të njëjtit lloj ikonash, të mbledhura nga seksione të ndryshme, për lehtësinë e përdorimit.

Standardi Unicode është ndërkombëtar. Ai përfshin personazhe nga pothuajse të gjitha skenarët e botës. Përfshirë ato që nuk përdoren më. Hieroglifet egjiptiane, runat gjermanike, shkrimet maja, kuneiformat dhe alfabetet e shteteve antike. Janë paraqitur edhe emërtimet e peshave dhe masave, shënimet muzikore dhe konceptet matematikore.

Vetë Konsorciumi Unicode nuk shpik personazhe të rinj. Në tabela shtohen ato ikona që gjejnë përdorim në shoqëri. Për shembull, shenja rubla u përdor në mënyrë aktive për gjashtë vjet përpara se të shtohej në Unicode. Piktogramet emoji (emoticons) gjithashtu u përdorën gjerësisht për herë të parë në Japoni përpara se të përfshiheshin në kodim. Por markat tregtare dhe logot e kompanisë nuk shtohen në parim. Edhe ato të zakonshme si molla Apple ose flamuri i Windows. Deri më sot, rreth 120 mijë karaktere janë të koduara në versionin 8.0.

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 - shkronja latine, numra arabë dhe shenja pikësimi.

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ë një 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ë. Ju vetëm 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 pseudografi

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 kinezishtja, 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 me tekst të 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 fontet e 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ë të përdorur 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 - hajdutët do të dalin.

Prandaj, në asnjë rrethanë Mos përdorni bllok shënimesh të zakonshme 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 për nga natyra është shumë afër standardit 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 Elementi meta, 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

Mund të shikoni më shumë video duke shkuar te
");">

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

Çdo kompjuter ka grupin e vet të karaktereve që ai zbaton. Ky grup përmban 26 shkronja të mëdha dhe të vogla, numra dhe karaktere speciale (pikë, hapësirë, etj.). Kur konvertohen në numra të plotë, simbolet quhen kode. Standardet u zhvilluan në mënyrë që kompjuterët të kishin të njëjtat grupe kodesh.

Standardi ASCII

ASCII (American Standard Code for Information Interchange) është një kod standard amerikan për shkëmbimin e informacionit. Çdo karakter ASCII ka 7 bit, kështu që numri maksimal i karaktereve është 128 (Tabela 1). Kodet 0 deri 1F janë karaktere kontrolli dhe nuk printohen. Për transmetimin e të dhënave nevojiten shumë karaktere ASCII jo të printueshme. Për shembull, një mesazh mund të përbëhet nga karakteri i fillimit të titullit SOH, vetë titulli dhe karakteri i fillimit të tekstit STX, vetë teksti dhe karakteri i fundit i tekstit ETX, dhe fundi i transmetimit personazhi EOT. Sidoqoftë, të dhënat përmes rrjetit transmetohen në pako, të cilat vetë janë përgjegjëse për fillimin dhe përfundimin e transmetimit. Pra, karakteret jo të printueshme pothuajse nuk përdoren kurrë.

Tabela 1 - Tabela e kodit ASCII

Numri Ekipi Kuptimi Numri Ekipi Kuptimi
0 NUL Treguesi null 10 DLE Dalja nga sistemi i transmetimit
1 SOH fillimi i titullit 11 DC1 Menaxhimi i pajisjes
2 STX Fillimi i tekstit 12 DC2 Menaxhimi i pajisjes
3 ETX Fundi i tekstit 13 DC3 Menaxhimi i pajisjes
4 EOT Fundi i transmetimit 14 DC4 Menaxhimi i pajisjes
5 ACK Kërkesë 15 N.A.K. Moskonfirmimi i pritjes
6 BEL Konfirmimi i pranimit 16 SYN E thjeshtë
7 B.S. Simboli i ziles 17 ETB Fundi i bllokut të transmetimit
8 HT Hap prapa 18 MUND shenjë
9 LF Tabelimi horizontal 19 E.M. Fundi i medias
A VT Përkthimi i linjës 1A NËN Abonim
B FF Skeda vertikale 1B ESC Dilni
C CR Përkthimi i faqes 1C FS Ndarës i skedarëve
D KËSHTU QË Kthim ngarkese 1D G.S. Ndarës grupi
E S.I. Kaloni në regjistër shtesë 1E R.S. Ndarës i rekordit
S.I. Kalo në kasë standarde 1F SHBA Ndarës i moduleve
Numri Simboli Numri Simboli Numri Simboli Numri Simboli Numri Simboli Numri Simboli
20 hapësirë 30 0 40 @ 50 P 60 . 70 fq
21 ! 31 1 41 A 51 P 61 a 71 q
22 32 2 42 B 52 R 62 b 72 r
23 # 33 3 43 C 53 S 63 c 73 s
24 φ 34 4 44 D 54 T 64 d 74 t
25 % 35 5 45 E 55 DHE 65 e 75 Dhe
26 & 36 6 46 F 56 V 66 f 76 v
27 37 7 47 G 57 W 67 g 77 w
28 ( 38 8 48 H 58 X 68 h 78 x
29 ) 39 9 49 I 59 Y 69 i 70 y
2A 3A ; 4A J 5A Z 6A j 7A z
2B + 3B ; 4B K 5B [ 6B k 7B {
2C 3C < 4C L 5C \ 6C l 7C |
2D 3D = 4D M 5D ] 6D m 7D }
2E 3E > 4E N 5E 6E n 7E ~
2F / 3F g 4F O 5F _ 6F o 7F DEL

Standardi Unicode

Kodimi i mëparshëm është i mirë për anglishten, por nuk është i përshtatshëm për gjuhët e tjera. Për shembull, gjermanishtja ka umlaut, dhe frëngjishtja ka mbishkrime. Disa gjuhë kanë alfabete krejtësisht të ndryshme. Përpjekja e parë për të zgjeruar ASCII ishte IS646, e cila zgjeroi kodimin e mëparshëm me 128 karaktere shtesë. U shtuan shkronja latine me goditje dhe diakritikë dhe morën emrin - Latin 1. Përpjekja tjetër ishte IS 8859 - e cila përmbante një faqe kodi. Kishte edhe përpjekje për zgjerime, por kjo nuk ishte universale. U krijua kodimi UNICODE (është 10646). Ideja prapa kodimit është që çdo karakteri t'i caktohet një vlerë e vetme konstante 16-bitëshe, e cila quhet - treguesi i kodit. Në total janë 65536 tregues. Për të kursyer hapësirë, ne përdorëm Latin-1 për kodet 0 -255, duke ndryshuar lehtësisht ASII në UNICODE. Ky standard zgjidhi shumë probleme, por jo të gjitha. Për shkak të ardhjes së fjalëve të reja, për shembull, për gjuhën japoneze, është e nevojshme të rritet numri i termave me rreth 20 mijë.

Sipas Unionit Ndërkombëtar të Telekomunikacionit, në vitin 2016, tre miliardë e gjysmë njerëz përdorën internetin me njëfarë rregullsie. Shumica e tyre as që e mendojnë faktin se çdo mesazh që dërgojnë përmes kompjuterit ose pajisjeve celulare, si dhe tekstet që shfaqen në të gjitha llojet e monitorëve, janë në të vërtetë kombinime të 0 dhe 1. Kjo paraqitje e informacionit quhet kodim. . Siguron dhe lehtëson shumë ruajtjen, përpunimin dhe transmetimin e tij. Në vitin 1963, u zhvillua kodimi amerikan ASCII, i cili është objekt i këtij artikulli.

Paraqitja e informacionit në një kompjuter

Nga pikëpamja e çdo kompjuteri elektronik, teksti është një grup karakteresh individuale. Këto përfshijnë jo vetëm shkronjat, duke përfshirë ato të mëdha, por edhe shenjat e pikësimit dhe numrat. Përveç kësaj, përdoren karaktere speciale "=", "&", "(" dhe hapësira.

Tërësia e karaktereve që përbëjnë tekstin quhet alfabet dhe numri i tyre quhet kardinalitet (shënohet si N). Për ta përcaktuar atë, përdoret shprehja N = 2^b, ku b është numri i biteve ose pesha e informacionit të një simboli të caktuar.

Është vërtetuar se një alfabet me një kapacitet prej 256 karakteresh mund të përfaqësojë të gjitha karakteret e nevojshme.

Meqenëse 256 përfaqëson fuqinë e 8-të të dy, pesha e çdo karakteri është 8 bit.

Një njësi matëse prej 8 bitësh quhet 1 bajt, kështu që është zakon të thuhet se çdo karakter në tekstin e ruajtur në një kompjuter merr një bajt memorie.

Si bëhet kodimi?

Çdo tekst futet në kujtesën e një kompjuteri personal duke përdorur tastet e tastierës në të cilat janë shkruar numra, shkronja, shenja pikësimi dhe simbole të tjera. Ato transferohen në RAM në kodin binar, d.m.th., çdo karakter shoqërohet me një kod dhjetor të njohur për njerëzit, nga 0 në 255, që korrespondon me një kod binar - nga 00000000 në 11111111.

Kodimi i karaktereve bajt-byte lejon procesorin që kryen përpunimin e tekstit të aksesojë çdo karakter individualisht. Në të njëjtën kohë, 256 karaktere janë mjaft të mjaftueshme për të përfaqësuar çdo informacion simbolik.

Kodimi i karaktereve ASCII

Kjo shkurtesë në anglisht qëndron për kodin për shkëmbimin e informacionit.

Edhe në agimin e kompjuterizimit, u bë e qartë se ishte e mundur të dilte me një shumëllojshmëri të gjerë mënyrash për të koduar informacionin. Sidoqoftë, për të transferuar informacion nga një kompjuter në tjetrin, ishte e nevojshme të zhvillohej një standard i unifikuar. Pra, në vitin 1963, tabela e kodimit ASCII u shfaq në SHBA. Në të, çdo simbol i alfabetit të kompjuterit shoqërohet me numrin e tij serial në paraqitjen binar. ASCII fillimisht u përdor vetëm në Shtetet e Bashkuara dhe më vonë u bë një standard ndërkombëtar për PC.

Kodet ASCII ndahen në 2 pjesë. Vetëm gjysma e parë e kësaj tabele konsiderohet si standard ndërkombëtar. Ai përfshin karaktere me numra serial nga 0 (koduar si 00000000) deri në 127 (koduar 01111111).

Numër serik

Kodimi i tekstit ASCII

Simboli

0000 0000 - 0001 1111

Karakteret me N nga 0 në 31 quhen karaktere kontrolli. Funksioni i tyre është të "menaxhojnë" procesin e shfaqjes së tekstit në një monitor ose pajisje printimi, duke dhënë një sinjal zanor, etj.

0010 0000 - 0111 1111

Karaktere nga N nga 32 në 127 (pjesa standarde e tabelës) - shkronja të mëdha dhe të vogla të alfabetit latin, shifrat e 10-ta, shenjat e pikësimit, si dhe kllapa të ndryshme, simbole tregtare dhe të tjera. Karakteri 32 përfaqëson një hapësirë.

1000 0000 - 1111 1111

Karakteret me N nga 128 në 255 (pjesë alternative e tabelës ose faqe kodi) mund të kenë variante të ndryshme, secila prej të cilave ka numrin e vet. Faqja e kodit përdoret për të specifikuar alfabetet kombëtare që janë të ndryshëm nga latinishtja. Në veçanti, është me ndihmën e tij që kryhet kodimi ASCII për karakteret ruse.

Në tabelë, kodimet janë me shkronjë të madhe dhe pasojnë njëri-tjetrin sipas rendit alfabetik, dhe numrat janë në rend rritës. Ky parim mbetet i njëjtë për alfabetin rus.

Personazhet e kontrollit

Tabela e kodimit ASCII u krijua fillimisht për marrjen dhe transmetimin e informacionit nëpërmjet një pajisjeje që nuk është përdorur për një kohë të gjatë, siç është teletipi. Në këtë drejtim, karaktere jo të printueshme u përfshinë në grupin e karaktereve, të përdorura si komanda për të kontrolluar këtë pajisje. Komanda të ngjashme u përdorën në metoda të tilla të mesazheve para kompjuterike si kodi Morse, etj.

Karakteri më i zakonshëm i teletipit është NUL (00). Përdoret ende sot në shumicën e gjuhëve programuese për të treguar fundin e një rreshti.

Ku përdoret kodimi ASCII?

Kodi standard amerikan është i nevojshëm jo vetëm për futjen e informacionit të tekstit në tastierë. Përdoret gjithashtu në grafikë. Në veçanti, në ASCII Art Maker, imazhet e shtesave të ndryshme përfaqësojnë një spektër karakteresh ASCII.

Ekzistojnë dy lloje të produkteve të tilla: ato që kryejnë funksionin e redaktuesve grafikë duke konvertuar imazhet në tekst dhe ato që konvertojnë "vizatimet" në grafikë ASCII. Për shembull, emoticon i famshëm është një shembull kryesor i një simboli kodues.

ASCII mund të përdoret gjithashtu kur krijoni një dokument HTML. Në këtë rast, mund të futni një grup të caktuar karakteresh, dhe kur shikoni faqen, një simbol që korrespondon me këtë kod do të shfaqet në ekran.

ASCII është gjithashtu i nevojshëm për krijimin e faqeve të internetit shumëgjuhëshe, pasi karakteret që nuk përfshihen në një tabelë specifike kombëtare zëvendësohen me kode ASCII.

Disa veçori

ASCII fillimisht u përdor për të koduar informacionin e tekstit duke përdorur 7 bit (njëri u la bosh), por sot funksionon si 8 bit.

Shkronjat e vendosura në kolonat e vendosura sipër dhe poshtë ndryshojnë nga njëra-tjetra vetëm në një bit të vetëm. Kjo redukton ndjeshëm kompleksitetin e auditimit.

Përdorimi i ASCII në Microsoft Office

Nëse është e nevojshme, ky lloj kodimi i informacionit të tekstit mund të përdoret në redaktuesit e tekstit të Microsoft si Notepad dhe Office Word. Megjithatë, në këtë rast mund të mos jeni në gjendje të përdorni disa funksione kur shkruani. Për shembull, nuk do të mund të përdorni tekst me shkronja të zeza, sepse kodimi ASCII ruan vetëm kuptimin e informacionit, duke injoruar pamjen dhe formën e tij të përgjithshme.

Standardizimi

Organizata ISO ka miratuar standardet ISO 8859 Ky grup përcakton kodimet me tetë bit për grupe të ndryshme gjuhësore. Në mënyrë të veçantë, ISO 8859-1 është një tabelë e zgjeruar ASCII për Shtetet e Bashkuara dhe vendet e Evropës Perëndimore. Dhe ISO 8859-5 është një tabelë e përdorur për alfabetin cirilik, duke përfshirë gjuhën ruse.

Për një sërë arsyesh historike, standardi ISO 8859-5 u përdor për një kohë shumë të shkurtër.

Për gjuhën ruse, kodet e mëposhtme përdoren në të vërtetë për momentin:

  • CP866 (Kodi Faqe 866) ose DOS, i cili shpesh quhet kodim alternativ GOST. Ajo u përdor në mënyrë aktive deri në mesin e viteve '90 të shekullit të kaluar. Për momentin praktikisht nuk është përdorur.
  • KOI-8. Kodimi u zhvillua në vitet 1970 dhe 80 dhe aktualisht është standardi i pranuar përgjithësisht për mesazhet me email në RuNet. Përdoret gjerësisht në sistemet operative Unix, duke përfshirë Linux. Versioni "rus" i KOI-8 quhet KOI-8R. Përveç kësaj, ka versione për gjuhë të tjera cirilike, si për shembull ukrainisht.
  • Kodi Faqe 1251 (CP 1251, Windows - 1251). Zhvilluar nga Microsoft për të ofruar mbështetje për gjuhën ruse në mjedisin Windows.

Avantazhi kryesor i standardit të parë CP866 ishte ruajtja e karaktereve pseudografike në të njëjtat pozicione si në Extended ASCII. Kjo bëri të mundur ekzekutimin e programeve tekstuale të prodhuara nga jashtë, si p.sh. i famshmi Norton Commander, pa modifikime. Aktualisht, CP866 përdoret për programet e zhvilluara për Windows që funksionojnë në modalitetin e tekstit në ekran të plotë ose në dritaret e tekstit, duke përfshirë FAR Manager.

Tekstet kompjuterike të shkruara në kodimin CP866 janë mjaft të rralla këto ditë, por është ai që përdoret për emrat e skedarëve rusë në Windows.

"Unicode"

Për momentin, ky kodim është më i përdoruri. Kodet Unicode ndahen në zona. E para (U+0000 deri në U+007F) përfshin karaktere ASCII me kode. Kjo pasohet nga fushat e karaktereve të shkrimeve të ndryshme kombëtare, si dhe shenjat e pikësimit dhe simbolet teknike. Përveç kësaj, disa kode Unicode janë të rezervuara në rast se ka nevojë për të përfshirë karaktere të reja në të ardhmen.

Tani e dini se në ASCII, çdo karakter përfaqësohet si një kombinim i 8 zerave dhe njësheve. Për jo-specialistët, ky informacion mund të duket i panevojshëm dhe jo interesant, por a nuk doni të dini se çfarë po ndodh "në trurin" e kompjuterit tuaj?!

Mbivendosja e karaktereve

Karakteri BS (backspace) lejon printerin të printojë një karakter mbi tjetrin. ASCII parashikoi shtimin e diakritikëve në shkronja në këtë mënyrë, për shembull:

  • a BS "→ á
  • a BS ` → à
  • a BS ^ → â
  • o BS / → ø
  • c BS , → ç
  • n BS ~ → с

shënim: në shkronjat e vjetra, apostrofi " vizatohej i pjerrët në të majtë, dhe tilda ~ u zhvendos lart, kështu që ato thjesht përshtaten me rolin e një akute dhe një tilde sipër.

Nëse i njëjti karakter mbivendoset në një karakter, rezultati është një efekt shkronjash të theksuara, dhe nëse një nënvizim mbivendoset mbi një karakter, rezultati është tekst i nënvizuar.

  • a BS a → a
  • aBS_→ a

shënim: Kjo përdoret, për shembull, në sistemin e ndihmës mashkullore.

Variantet kombëtare të ASCII

Standardi ISO 646 (ECMA-6) parashikon mundësinë e vendosjes së simboleve kombëtare në vend @ [ \ ] ^ ` { | } ~ . Përveç kësaj, në vend # mund të postohet £ , dhe në vend $ - ¤ . Ky sistem është i përshtatshëm për gjuhët evropiane ku nevojiten vetëm disa karaktere shtesë. Versioni i ASCII pa karaktere kombëtare quhet US-ASCII, ose "International Reference Version".

Më pas, doli të ishte më i përshtatshëm përdorimi i kodimeve 8-bit (faqet e kodit), ku gjysma e poshtme e tabelës së kodit (0-127) është e zënë nga karakteret US-ASCII, dhe gjysma e sipërme (128-255) është i zënë nga karaktere shtesë, duke përfshirë një grup karakteresh kombëtare. Kështu, gjysma e sipërme e tabelës ASCII, para miratimit të gjerë të Unicode, u përdor në mënyrë aktive për të përfaqësuar karaktere të lokalizuara, shkronja të gjuhës lokale. Mungesa e një standardi të unifikuar për vendosjen e karaktereve cirilike në tabelën ASCII shkaktoi shumë probleme me kodimet (KOI-8, Windows-1251 dhe të tjerët). Gjuhët e tjera me shkrime jo latine gjithashtu vuajtën nga të pasurit e disa kodimeve të ndryshme.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
0. NUL SOM EOA MVZ EQT W.R.U. RU ZILE BKSP HT LF VT FF CR KËSHTU QË S.I.
1. DC 0 DC 1 DC 2 DC 3 DC 4 ERR SINKORONIZA L.E.M. S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
2.
3.
4. BLANK ! " # $ % & " ( ) * + , - . /
5. 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
6.
7.
8.
9.
A. @ A B C D E F G H I J K L M N O
B. P P R S T U V W X Y Z [ \ ]
C.
D.
E. a b c d e f g h i j k l m n o
F. fq q r s t u v w x y z ESC DEL

Në ata kompjuterë ku njësia minimale e adresueshme e memories ishte një fjalë 36-bit, fillimisht u përdorën karaktere 6-bit (1 fjalë = 6 karaktere). Pas kalimit në ASCII, kompjuterë të tillë filluan të përmbajnë ose 5 karaktere shtatë-bitësh (1 bit mbeti shtesë) ose 4 karaktere nëntë-bit me një fjalë.

Kodet ASCII përdoren gjithashtu për të përcaktuar se cili tast shtypet gjatë programimit. Për një tastierë standarde QWERTY, tabela e kodeve duket si kjo:



 Top