Ascii encoding. ASCII encoding (American standard code for information interchange) - basic text encoding para sa Latin alphabet

Ayon sa International Telecommunication Union, noong 2016, tatlo at kalahating bilyong tao ang gumamit ng Internet nang medyo regular. Karamihan sa kanila ay hindi man lang iniisip ang katotohanan na ang anumang mga mensahe na ipinadala nila sa pamamagitan ng PC o mga mobile na gadget, pati na rin ang mga teksto na ipinapakita sa lahat ng uri ng mga monitor, ay talagang kumbinasyon ng 0 at 1. Ang representasyong ito ng impormasyon ay tinatawag na encoding . Tinitiyak at lubos nitong pinapadali ang pag-iimbak, pagproseso at paghahatid nito. Noong 1963, binuo ang American ASCII encoding, na siyang paksa ng artikulong ito.

Paglalahad ng impormasyon sa isang computer

Mula sa punto ng view ng anumang elektronikong computer, ang teksto ay isang set indibidwal na mga karakter. Kabilang dito ang hindi lamang mga titik, kabilang ang mga malalaking titik, kundi pati na rin ang mga bantas at numero. Bilang karagdagan, ginagamit ang mga espesyal na character na "="", "&", "(" at mga puwang.

Ang hanay ng mga character na bumubuo sa teksto ay tinatawag na alpabeto, at ang kanilang numero ay tinatawag na cardinality (na tinukoy bilang N). Upang matukoy ito, ginagamit ang expression na N = 2^b, kung saan ang b ay ang bilang ng mga bit o ang bigat ng impormasyon ng isang partikular na simbolo.

Napatunayan na ang isang alpabeto na may kapasidad na 256 na mga character ay maaaring kumatawan sa lahat ng kinakailangang mga character.

Dahil ang 256 ay kumakatawan sa ika-8 kapangyarihan ng dalawa, ang bigat ng bawat karakter ay 8 bits.

Ang isang yunit ng pagsukat ng 8 bits ay tinatawag na 1 byte, kaya kaugalian na sabihin na ang anumang character sa teksto na nakaimbak sa isang computer ay tumatagal ng isang byte ng memorya.

Paano ginagawa ang coding?

Ang anumang mga teksto ay ipinasok sa memorya personal na computer sa pamamagitan ng mga keyboard key kung saan nakasulat ang mga numero, letra, bantas at iba pang simbolo. SA RAM ipinapadala ang mga ito sa binary code, ibig sabihin, ang bawat karakter ay nauugnay sa isang decimal code na pamilyar sa mga tao, mula 0 hanggang 255, na tumutugma sa isang binary code - mula 00000000 hanggang 11111111.

Ang byte-byte na character encoding ay nagbibigay-daan sa processor na gumaganap ng pagpoproseso ng text na ma-access ang bawat karakter nang isa-isa. Kasabay nito, ang 256 na mga character ay sapat na upang kumatawan sa anumang simbolikong impormasyon.

ASCII character encoding

Ang abbreviation na ito sa English ay nangangahulugang code para sa impormasyon pagpapalitan.

Kahit na sa bukang-liwayway ng computerization, naging malinaw na posible na makabuo ng iba't ibang paraan upang mag-encode ng impormasyon. Gayunpaman, upang mailipat ang impormasyon mula sa isang computer patungo sa isa pa, ito ay kinakailangan upang bumuo iisang pamantayan. Kaya, noong 1963, lumitaw ang talahanayan ng pag-encode ng ASCII sa USA. Sa loob nito, ang anumang simbolo ng alpabeto ng computer ay nakatalaga sa serial number nito binary na representasyon. Ang ASCII ay orihinal na ginamit lamang sa Estados Unidos, at pagkatapos ay naging internasyonal na pamantayan para sa PC.

Ang mga ASCII code ay nahahati sa 2 bahagi. Tanging ang unang kalahati ng talahanayang ito ay itinuturing na internasyonal na pamantayan. Kabilang dito ang mga character na may mga serial number mula 0 (naka-code bilang 00000000) hanggang 127 (naka-code bilang 01111111).

Serial number

ASCII text encoding

Simbolo

0000 0000 - 0001 1111

Ang mga character na may N mula 0 hanggang 31 ay tinatawag na control character. Ang kanilang pag-andar ay "pamahalaan" ang proseso ng pagpapakita ng teksto sa isang monitor o aparato sa pag-print, pagpapakain tunog signal atbp.

0010 0000 - 0111 1111

Mga character na may N mula 32 hanggang 127 (karaniwang bahagi ng talahanayan) - uppercase at maliliit na titik alpabetong Latin, 10th digits, punctuation marks, pati na rin ang iba't ibang bracket, commercial at iba pang simbolo. Ang karakter 32 ay kumakatawan sa isang espasyo.

1000 0000 - 1111 1111

Maaaring mayroon ang mga character na may N mula 128 hanggang 255 (kahaliling bahagi ng talahanayan o pahina ng code). iba't ibang mga pagpipilian, na ang bawat isa ay may sariling numero. Ang pahina ng code ay ginagamit upang tukuyin ang mga pambansang alpabeto na iba sa Latin. Sa partikular, ito ay sa tulong nito na ang pag-encode ng ASCII para sa mga character na Ruso ay isinasagawa.

Sa talahanayan, ang mga pag-encode ay naka-capitalize at sinusundan ang bawat isa sa alpabetikong pagkakasunud-sunod, at ang mga numero ay nasa pataas na pagkakasunud-sunod. Ang prinsipyong ito ay nananatiling pareho para sa alpabetong Ruso.

Kontrolin ang mga character

Ang talahanayan ng pag-encode ng ASCII ay orihinal na nilikha para sa pagtanggap at pagpapadala ng impormasyon sa pamamagitan ng isang aparato na hindi nagamit nang mahabang panahon, tulad ng isang teletype. Kaugnay nito, ang mga hindi napi-print na character ay kasama sa set ng character, na ginamit bilang mga utos upang kontrolin ang device na ito. Ang mga katulad na utos ay ginamit sa mga pamamaraan ng pre-computer na pagmemensahe gaya ng Morse code, atbp.

Ang pinakakaraniwang teletype na character ay NUL (00). Ginagamit pa rin ito ngayon sa karamihan ng mga programming language upang ipahiwatig ang dulo ng isang linya.

Saan ginagamit ang ASCII encoding?

Amerikano karaniwang code ay kinakailangan hindi lamang para sa pagpasok ng impormasyon ng teksto mula sa keyboard. Ginagamit din ito sa mga graphic. Sa partikular, sa programa ng ASCII Art Gumagawa ng Larawan iba't ibang extension kumakatawan sa isang spectrum ng ASCII character.

Mayroong dalawang uri ng mga katulad na produkto: ang mga gumaganap ng isang function mga graphic editor sa pamamagitan ng pag-convert ng mga imahe sa text at pag-convert ng "drawings" sa ASCII graphics. Halimbawa, ang isang sikat na emoticon ay isang maliwanag na halimbawa encoding character.

Magagamit din ang ASCII kapag gumagawa ng HTML na dokumento. Sa kasong ito, maaari kang magpasok ng isang tiyak na hanay ng mga character, at kapag tinitingnan ang pahina, isang simbolo na tumutugma sa code na ito ay lilitaw sa screen.

Ang ASCII ay kinakailangan din para sa paglikha ng mga website na may maraming wika, dahil ang mga character na hindi kasama sa isang partikular na pambansang talahanayan ay pinapalitan ng mga ASCII code.

Ang ilang mga tampok

Ang ASCII ay orihinal na ginamit upang i-encode ang impormasyon ng teksto gamit ang 7 bits (isa ay naiwang blangko), ngunit ngayon ito ay gumagana bilang 8 bits.

Ang mga titik na matatagpuan sa mga column na matatagpuan sa itaas at ibaba ay naiiba sa isa't isa sa isang bit lamang. Ito ay makabuluhang binabawasan ang pagiging kumplikado ng pag-audit.

Paggamit ng ASCII sa Microsoft Office

Kung kinakailangan, ang ganitong uri ng pag-encode ng impormasyon ng teksto ay maaaring gamitin sa mga editor ng teksto ng Microsoft tulad ng Notepad at Office Word. Gayunpaman, maaaring hindi mo magamit ang ilang mga function kapag nagta-type sa kasong ito. Halimbawa, hindi ka makakapili naka-bold, dahil ang pag-encode ng ASCII ay pinapanatili lamang ang kahulugan ng impormasyon, hindi pinapansin ito pangkalahatang pananaw at hugis.

Standardisasyon

Ang organisasyong ISO ay nagpatibay ng mga pamantayang ISO 8859. Tinutukoy ng pangkat na ito ang walong-bit na pag-encode para sa iba't ibang pangkat ng wika. Sa partikular, ang ISO 8859-1 ay isang Extended ASCII table para sa United States at Western European na mga bansa. At ang ISO 8859-5 ay isang talahanayan na ginagamit para sa Cyrillic alphabet, kabilang ang wikang Ruso.

Para sa ilang makasaysayang dahilan, ginamit ang pamantayang ISO 8859-5 sa napakaikling panahon.

Para sa wikang Ruso sa ngayon Ang aktwal na pag-encode na ginamit ay:

  • CP866 (Code Page 866) o DOS, na kadalasang tinatawag na alternatibong GOST encoding. Ito ay aktibong ginamit hanggang sa kalagitnaan ng 90s ng huling siglo. Sa ngayon halos hindi ito ginagamit.
  • KOI-8. Ang encoding ay binuo noong 1970s at 80s, at ngayon ay karaniwang tinatanggap na pamantayan para sa mga mensaheng mail sa Runet. Ito ay malawakang ginagamit sa OS Pamilya ng Unix, kabilang ang Linux. Ang "Russian" na bersyon ng KOI-8 ay tinatawag na KOI-8R. Bilang karagdagan, may mga bersyon para sa iba pang mga wikang Cyrillic, tulad ng Ukrainian.
  • Code Page 1251 (CP 1251, Windows - 1251). Binuo ng Microsoft upang magbigay ng suporta para sa wikang Ruso sa kapaligiran ng Windows.

Ang pangunahing bentahe ng unang pamantayan ng CP866 ay ang pagpapanatili ng mga pseudographic na character sa parehong mga posisyon tulad ng sa Extended ASCII. Pinayagan nito itong tumakbo nang walang pagbabago mga programa sa teksto, banyagang produksyon, tulad ng sikat Komandante ng Norton. Sa kasalukuyan, ang CP866 ay ginagamit para sa mga program na binuo para sa Windows na tumatakbo sa full-screen text mode o sa mga text window, kasama sa FAR Manager.

Mga computer text na nakasulat sa CP866 encoding, in kani-kanina lang Ang mga ito ay medyo bihira, ngunit ito ang ginagamit para sa mga pangalan ng file na Ruso sa Windows.

"Unicode"

Sa ngayon, ang encoding na ito ang pinakamalawak na ginagamit. Ang mga Unicode code ay nahahati sa mga lugar. Ang una (U+0000 hanggang U+007F) ay may kasamang mga ASCII na character na may mga code. Sinusundan ito ng mga karakter na lugar ng iba't ibang pambansang script, pati na rin ang mga bantas at teknikal na simbolo. Bilang karagdagan, ang ilang mga Unicode code ay nakalaan kung sakaling may pangangailangan na magsama ng mga bagong character sa hinaharap.

Ngayon alam mo na sa ASCII, ang bawat karakter ay kinakatawan bilang isang kumbinasyon ng 8 zero at isa. Para sa mga di-espesyalista, ang impormasyong ito ay maaaring mukhang hindi kailangan at hindi kawili-wili, ngunit hindi mo ba gustong malaman kung ano ang nangyayari "sa utak" ng iyong PC?!

hello, mahal na mga mambabasa blog site. Ngayon ay makikipag-usap kami sa iyo tungkol sa kung saan nanggaling ang mga krakozyabrs sa isang website at sa mga programa, kung anong mga text encoding ang umiiral at kung alin ang dapat gamitin. Tingnan natin ang kasaysayan ng kanilang pag-unlad, simula sa pangunahing ASCII, pati na rin ang mga pinahabang bersyon nito na CP866, KOI8-R, Windows 1251 at nagtatapos sa modernong Unicode consortium encodings UTF 16 at 8.

Para sa ilan, maaaring mukhang hindi kailangan ang impormasyong ito, ngunit malalaman mo ba kung gaano karaming mga tanong ang natatanggap ko partikular tungkol sa mga gumagapang na krakozyabrs (hindi nababasang hanay ng mga character). Ngayon ay magkakaroon ako ng pagkakataon na i-refer ang lahat sa teksto ng artikulong ito at hanapin ang sarili kong mga pagkakamali. Buweno, humanda sa pagsipsip ng impormasyon at subukang sundan ang daloy ng kuwento.

ASCII - pangunahing pag-encode ng teksto para sa alpabetong Latin

Ang pag-unlad ng mga pag-encode ng teksto ay naganap nang sabay-sabay sa pagbuo ng industriya ng IT, at sa panahong ito ay nakaranas sila ng maraming pagbabago. Sa kasaysayan, nagsimula ang lahat sa EBCDIC, na medyo dissonant sa pagbigkas ng Ruso, na naging posible na i-encode ang mga titik ng alpabetong Latin, mga numerong Arabe at mga bantas na may mga control character.

Ngunit gayon pa man, ang panimulang punto para sa pagbuo ng mga modernong pag-encode ng teksto ay dapat ituring na sikat ASCII(American Standard Code for Information Interchange, na sa Russian ay karaniwang binibigkas bilang "magtanong"). Inilalarawan nito ang unang 128 character na pinakakaraniwang ginagamit ng mga user na nagsasalita ng Ingles - mga letrang Latin, Arabic numeral at mga bantas.

Kasama rin sa 128 character na ito na inilalarawan sa ASCII ang ilang character ng serbisyo tulad ng mga bracket, hash mark, asterisk, atbp. Sa katunayan, makikita mo sila mismo:

Ang 128 character na ito mula sa orihinal na bersyon ng ASCII ang naging pamantayan, at sa anumang iba pang pag-encode ay tiyak na mahahanap mo ang mga ito at lilitaw ang mga ito sa ganitong pagkakasunud-sunod.

Ngunit ang katotohanan ay sa isang byte ng impormasyon maaari kang mag-encode hindi 128, ngunit kasing dami ng 256 iba't ibang mga halaga (dalawa sa kapangyarihan ng walong katumbas ng 256), kaya sumusunod pangunahing bersyon Isang buong serye ng mga Asuka ang lumitaw pinahabang ASCII encodings, kung saan, bilang karagdagan sa 128 pangunahing mga character, posible ring mag-encode ng mga simbolo ng pambansang pag-encode (halimbawa, Russian).

Dito, marahil ay nagkakahalaga ng pagsasabi ng kaunti pa tungkol sa mga sistema ng numero na ginagamit sa paglalarawan. Una sa lahat, tulad ng alam mo, ang isang computer ay gumagana lamang sa mga numero sa binary system, ibig sabihin ay may mga zero at isa (“ Boolean algebra"kung may nag-aral sa kolehiyo o paaralan). , ang bawat isa ay a two to the power, simula sa zero, at hanggang dalawa hanggang sa ikapito:

Hindi mahirap unawain na ang lahat ng posibleng kumbinasyon ng mga zero at isa sa gayong disenyo ay maaari lamang 256. Ang pag-convert ng numero mula sa binary system patungo sa decimal system ay medyo simple. Kailangan mo lang idagdag ang lahat ng kapangyarihan ng dalawa na may mga nasa itaas nila.

Sa aming halimbawa, ito ay lumalabas na 1 (2 sa kapangyarihan ng zero) plus 8 (dalawa sa kapangyarihan ng 3), plus 32 (dalawa hanggang sa ikalimang kapangyarihan), plus 64 (sa ikaanim na kapangyarihan), plus 128 (sa ikapitong kapangyarihan). Kabuuang nakakakuha ng 233 in sistemang desimal Pagtutuos. Tulad ng nakikita mo, ang lahat ay napaka-simple.

Ngunit kung titingnan mo nang mabuti ang talahanayan na may mga character na ASCII, makikita mo na ang mga ito ay kinakatawan sa hexadecimal encoding. Halimbawa, ang "asterisk" ay tumutugma sa Aski hexadecimal na numero 2A. Malamang alam mo na sa hexadecimal system Ang mga numero ay ginagamit bilang karagdagan sa Arabic numeral at Latin na mga titik mula A (nangangahulugang sampu) hanggang F (nangangahulugang labinlimang).

Kung gayon, para sa pagsasalin binary na numero sa hexadecimal gumamit ng sumusunod na simple at malinaw na pamamaraan. Ang bawat byte ng impormasyon ay nahahati sa dalawang bahagi ng apat na bits, tulad ng ipinapakita sa screenshot sa itaas. yun. sa bawat kalahating byte binary code labing-anim na halaga lamang ang maaaring i-encode (dalawa hanggang ika-apat na kapangyarihan), na madaling kinakatawan bilang isang hexadecimal na numero.

Bukod dito, sa kaliwang kalahati ng byte ang mga degree ay kailangang mabilang muli simula sa zero, at hindi tulad ng ipinapakita sa screenshot. Bilang resulta, sa pamamagitan ng mga simpleng kalkulasyon, nakuha namin na ang numero E9 ay naka-encode sa screenshot. Umaasa ako na ang takbo ng aking pangangatwiran at ang solusyon sa palaisipang ito ay naging malinaw sa iyo. Well, ngayon magpatuloy tayo, sa katunayan, ang pakikipag-usap tungkol sa mga text encoding.

Mga pinahabang bersyon ng Asuka - CP866 at KOI8-R encoding na may pseudographics

Kaya, nagsimula kaming pag-usapan ang tungkol sa ASCII, na kung saan ay, tulad nito, ang panimulang punto para sa pagbuo ng lahat ng mga modernong pag-encode (Windows 1251, Unicode, UTF 8).

Sa una, naglalaman lamang ito ng 128 na mga character ng alpabetong Latin, mga numerong Arabe at iba pa, ngunit sa pinalawak na bersyon naging posible na gamitin ang lahat ng 256 na halaga na maaaring ma-encode sa isang byte ng impormasyon. Yung. Naging posible na magdagdag ng mga simbolo ng mga titik ng iyong wika sa Aski.

Dito kailangan nating lumihis muli upang ipaliwanag - bakit kailangan natin ng mga pag-encode? mga teksto at kung bakit ito napakahalaga. Ang mga character sa screen ng iyong computer ay nabuo batay sa dalawang bagay - mga hanay ng mga vector form (representasyon) ng iba't ibang mga character (matatagpuan ang mga ito sa mga file na may ) at code na nagpapahintulot sa iyo na mag-pull out mula sa set ng mga vector form na ito (font file ) eksakto ang karakter na kakailanganing ipasok tamang lugar.

Malinaw na ang mga font mismo ang may pananagutan para sa mga hugis ng vector, ngunit ang operating system at ang mga program na ginamit dito ay responsable para sa pag-encode. Yung. anumang text sa iyong computer ay magiging isang set ng mga byte, na ang bawat isa ay nag-e-encode ng isang character ng mismong text na ito.

Ang program na nagpapakita ng tekstong ito sa screen (text editor, browser, atbp.), kapag nag-parse ng code, binabasa ang pag-encode ng susunod na character at hinahanap ang kaukulang vector form sa ang kinakailangang file font na konektado para ipakita ang text na dokumentong ito. Ang lahat ay simple at karaniwan.

Nangangahulugan ito na para ma-encode ang anumang character na kailangan namin (halimbawa, mula sa pambansang alpabeto), dalawang kundisyon ang dapat matugunan - ang vector form ng character na ito ay dapat nasa font na ginamit at ang character na ito ay maaaring ma-encode sa pinahabang ASCII encoding sa isang byte. Samakatuwid, mayroong isang buong grupo ng mga naturang pagpipilian. Para lamang sa pag-encode ng mga character sa wikang Ruso, mayroong ilang uri ng pinahabang Aska.

Halimbawa, orihinal na lumitaw CP866, na may kakayahang gumamit ng mga character mula sa alpabetong Ruso at isang pinahabang bersyon ng ASCII.

Yung. kanya itaas na bahagi ganap na nag-tutugma sa pangunahing bersyon ng Aska (128 Latin na mga character, numero at lahat ng uri ng crap), na ipinakita sa screenshot sa itaas lamang, ngunit ang ibabang bahagi ng talahanayan na may CP866 encoding ay mayroong form na nakasaad sa screenshot sa ibaba lamang at pinahintulutan kang mag-encode ng isa pang 128 character (mga letrang Ruso at lahat ng uri ng pseudo-graphics):

Kita mo, sa kanang column ang mga numero ay nagsisimula sa 8, dahil... ang mga numero mula 0 hanggang 7 ay tumutukoy sa pangunahing bahagi ng ASCII (tingnan ang unang screenshot). yun. ang letrang Ruso na "M" sa CP866 ay magkakaroon ng code 9C (matatagpuan ito sa intersection ng kaukulang hilera na may 9 at haligi na may numero C sa hexadecimal number system), na maaaring isulat sa isang byte ng impormasyon, at kung mayroong angkop na font na may mga character na Ruso, ang liham na ito na walang mga problema ay lilitaw sa teksto.

Saan nagmula ang halagang ito? pseudographics sa CP866? Ang buong punto ay ang pag-encode na ito para sa tekstong Ruso ay binuo noong mga malabo na taon na ang mga graphical na operating system ay hindi gaanong laganap tulad ng ngayon. At sa Dosa at katulad na mga operating system ng teksto, ginawang posible ng mga pseudographic na kahit papaano ay pag-iba-ibahin ang disenyo ng mga teksto, at samakatuwid ay marami ang CP866 at lahat ng iba pang mga kapantay nito mula sa kategorya ng mga pinahabang bersyon ng Asuka.

Ang CP866 ay ipinamahagi ng IBM, ngunit bilang karagdagan dito, ang isang bilang ng mga pag-encode ay binuo para sa mga character ng wikang Ruso, halimbawa, ang parehong uri (pinalawak na ASCII) ay maaaring maiugnay KOI8-R:

Ang prinsipyo ng pagpapatakbo nito ay nananatiling kapareho ng sa CP866 na inilarawan nang mas maaga - ang bawat karakter ng teksto ay naka-encode ng isang solong byte. Ipinapakita ng screenshot ang ikalawang kalahati ng talahanayan ng KOI8-R, dahil ang unang kalahati ay ganap na pare-pareho sa pangunahing Asuka, na ipinapakita sa unang screenshot sa artikulong ito.

Kabilang sa mga tampok ng pag-encode ng KOI8-R, mapapansin na ang mga letrang Ruso sa talahanayan nito ay wala sa pagkakasunud-sunod ng alpabeto, tulad ng, halimbawa, ginawa nila sa CP866.

Kung titingnan mo ang pinakaunang screenshot (ng pangunahing bahagi, na kasama sa lahat ng pinalawak na pag-encode), mapapansin mo na sa KOI8-R ang mga letrang Ruso ay matatagpuan sa parehong mga cell ng talahanayan bilang ang kaukulang mga titik ng alpabetong Latin. mula sa unang bahagi ng talahanayan. Ginawa ito para sa kaginhawaan ng paglipat mula sa Russian patungo sa Latin na mga character sa pamamagitan ng pag-discard ng isang bit lamang (dalawa hanggang sa ikapitong kapangyarihan o 128).

Windows 1251 - ang modernong bersyon ng ASCII at kung bakit lumalabas ang mga bitak

Ang karagdagang pag-unlad ng mga pag-encode ng teksto ay dahil sa ang katunayan na ang mga graphical na operating system ay nakakakuha ng katanyagan at ang pangangailangan na gumamit ng mga pseudographic sa mga ito ay nawala sa paglipas ng panahon. Bilang resulta, bumangon ang isang buong grupo na, sa esensya, ay mga pinahabang bersyon pa rin ng Asuka (isang karakter ng teksto ay naka-encode ng isang byte lamang ng impormasyon), ngunit walang paggamit ng mga pseudographic na simbolo.

Nabibilang sila sa tinatawag na ANSI encodings, na binuo ng American Standards Institute. Sa karaniwang pananalita, ginamit din ang pangalang Cyrillic para sa bersyon na may suporta sa wikang Ruso. Ang isang halimbawa nito ay.

Naiiba ito sa dating ginamit na CP866 at KOI8-R na ang lugar ng mga simbolo ng pseudographics dito ay kinuha ng nawawalang mga character Typography ng Russia (maliban sa marka ng accent), pati na rin ang mga simbolo na ginamit sa mga wikang Slavic malapit sa Russian (Ukrainian, Belarusian, atbp.):

Dahil sa kasaganaan ng mga pag-encode ng wikang Ruso, mga tagagawa ng font at mga tagagawa software Ang mga sakit ng ulo ay patuloy na lumitaw, at ikaw at ako, mahal na mga mambabasa, ay madalas na nakakakuha ng parehong kilalang-kilala krakozyabry nang magkaroon ng kalituhan sa bersyong ginamit sa teksto.

Kadalasan sila ay lumitaw kapag nagpapadala at tumatanggap ng mga mensahe sa pamamagitan ng email, na nagsasangkot ng paglikha ng napakasalimuot na mga talahanayan ng conversion, na, sa katunayan, sa panimula ay hindi nalutas ang problemang ito, at ang mga user ay kadalasang ginagamit para sa pagsusulatan upang maiwasan ang mga kilalang gimik kapag gumagamit ng mga Russian encoding tulad ng CP866, KOI8-R o Windows 1251.

Sa katunayan, ang mga krakozyabrs na lumilitaw sa halip na ang tekstong Ruso ay resulta ng maling paggamit ng pag-encode ng wikang ito, na hindi tumugma sa kung saan ito naka-encode text message sa simula.

Halimbawa, kung susubukan mong ipakita ang mga character na naka-encode gamit ang CP866 gamit ang code Windows table 1251, pagkatapos ay lalabas ang parehong kalokohan na ito (isang walang kabuluhang hanay ng mga character), ganap na papalitan ang teksto ng mensahe.

Ang isang katulad na sitwasyon ay madalas na lumitaw sa mga forum o blog, kapag ang teksto na may mga Russian na character ay maling nai-save sa maling pag-encode na ginamit sa site bilang default, o sa maling text editor, na nagdaragdag ng mga gag sa code na hindi nakikita ng ang hubad na mata.

Sa huli, maraming mga tao ang napagod sa sitwasyong ito na may maraming mga pag-encode at patuloy na gumagapang na mga bug, ang mga kinakailangan ay lumitaw para sa paglikha ng isang bagong unibersal na pagkakaiba-iba na papalitan ang lahat ng mga umiiral na at sa wakas ay malulutas ang problema sa hitsura ng nababasang mga teksto. Bilang karagdagan, nagkaroon ng problema sa mga wika tulad ng Chinese, kung saan mayroong higit pang mga character ng wika kaysa sa 256.

Unicode - mga unibersal na encoding na UTF 8, 16 at 32

Ang libu-libong mga palatandaan ng isang pangkat ng wika timog-silangang asya walang paraan upang ilarawan sa isang byte ang impormasyong inilaan para sa pag-encode ng mga character sa mga pinahabang bersyon ng ASCII. Bilang isang resulta, isang consortium ay nilikha na tinatawag na Unicode(Unicode - Unicode Consortium) sa pakikipagtulungan ng maraming pinuno ng industriya ng IT (mga gumagawa ng software, na nag-encode ng hardware, na gumagawa ng mga font), na interesado sa paglitaw ng isang unibersal na pag-encode ng teksto.

Ang unang variation na inilabas sa ilalim ng tangkilik ng Unicode Consortium ay UTF 32. Ang numero sa pangalan ng pag-encode ay nangangahulugang ang bilang ng mga bit na ginagamit upang mag-encode ng isang character. Ang 32 bits ay katumbas ng 4 na byte ng impormasyon na kakailanganin para mag-encode ng isang character sa bagong unibersal na UTF encoding.

Bilang resulta, ang parehong file na may text na naka-encode sa pinalawig na bersyon ng ASCII at sa UTF-32, sa huling kaso, ay magkakaroon ng sukat (timbang) ng apat na beses na mas malaki. Ito ay masama, ngunit ngayon ay mayroon kaming pagkakataong mag-encode gamit ang YTF ng isang bilang ng mga character na katumbas ng dalawa hanggang sa tatlumpung segundong kapangyarihan ( bilyun-bilyong karakter, na sasakupin ang anumang talagang kinakailangang halaga na may napakalaking margin).

Ngunit maraming mga bansa na may mga wika ng pangkat ng Europa ay hindi kailangang gumamit ng napakalaking bilang ng mga character sa pag-encode, gayunpaman, kapag gumagamit ng UTF-32, sila ay walang dahilan ay nakatanggap ng apat na beses na pagtaas ng timbang. mga tekstong dokumento, at bilang resulta, pagtaas ng dami ng trapiko sa Internet at dami ng nakaimbak na data. Ito ay marami, at walang sinuman ang makakaya ng ganoong basura.

Bilang resulta ng pagbuo ng Unicode, UTF-16, na naging napakatagumpay kaya ito ay pinagtibay bilang default bilang base space para sa lahat ng character na ginagamit namin. Gumagamit ito ng dalawang byte para i-encode ang isang character. Tingnan natin kung ano ang hitsura ng bagay na ito.

Sa Windows operating system, maaari mong sundin ang landas na "Start" - "Programs" - "Accessories" - "System Tools" - "Character Table". Bilang resulta, magbubukas ang isang talahanayan na may mga hugis ng vector ng lahat ng mga font na naka-install sa iyong system. Kung pipiliin mo sa " Mga karagdagang opsyon» set ng mga Unicode character, makikita mo para sa bawat font nang hiwalay ang buong hanay ng mga character na kasama dito.

Sa pamamagitan ng paraan, sa pamamagitan ng pag-click sa alinman sa mga ito, makikita mo ang dalawang-byte nito code sa format na UTF-16, na binubuo ng apat na hexadecimal digit:

Ilang character ang maaaring ma-encode sa UTF-16 gamit ang 16 bits? 65,536 (dalawa sa kapangyarihan ng labing-anim), at ito ang numero na pinagtibay bilang base space sa Unicode. Bilang karagdagan, may mga paraan para mag-encode ng humigit-kumulang dalawang milyong character gamit ito, ngunit limitado ang mga ito sa pinalawak na espasyo ng isang milyong character ng teksto.

Ngunit kahit na ang matagumpay na bersyon na ito ng pag-encode ng Unicode ay hindi nagdala ng labis na kasiyahan sa mga nagsulat, halimbawa, mga programa lamang sa Ingles, dahil para sa kanila, pagkatapos ng paglipat mula sa pinalawig na bersyon ng ASCII hanggang UTF-16, ang bigat ng mga dokumento ay nadoble ( isang byte bawat karakter sa Aski at dalawang byte para sa parehong karakter sa YUTF-16).

Ito ay tiyak upang masiyahan ang lahat at lahat ng bagay sa Unicode consortium na napagpasyahan na magkaroon ng encoding variable na haba . Tinawag itong UTF-8. Sa kabila ng walo sa pangalan, mayroon talaga itong variable na haba, i.e. Ang bawat karakter ng teksto ay maaaring i-encode sa isang pagkakasunud-sunod ng isa hanggang anim na byte ang haba.

Sa pagsasagawa, ginagamit lamang ng UTF-8 ang hanay mula isa hanggang apat na byte, dahil lampas sa apat na byte ng code ay hindi na posible na isipin ang anuman. Ang lahat ng Latin na character dito ay naka-encode sa isang byte, tulad ng sa magandang lumang ASCII.

Ang kapansin-pansin ay sa kaso ng pag-encode lamang ng alpabetong Latin, kahit na ang mga programang hindi nakakaunawa sa Unicode ay magbabasa pa rin kung ano ang naka-encode sa YTF-8. Yung. ang pangunahing bahagi ng Asuka ay inilipat lamang sa paglikha ng Unicode consortium.

Ang mga cyrillic na character sa UTF-8 ay naka-encode sa dalawang byte, at, halimbawa, ang mga Georgian na character ay naka-encode sa tatlong byte. Ang Unicode Consortium, pagkatapos lumikha ng UTF 16 at 8, ay nalutas ang pangunahing problema - mayroon na tayo ngayon ang mga font ay may iisang code space. At ngayon ang kanilang mga tagagawa ay maaari lamang punan ito ng mga vector form ng mga character ng teksto batay sa kanilang mga lakas at kakayahan. Ngayon ay dumating pa sila sa mga set.

Sa "Talaan ng mga Simbolo" na ibinigay sa itaas, makikita iyon iba't ibang mga font suporta iba't ibang dami mga palatandaan. Ang ilang mga font na mayaman sa Unicode ay maaaring maging mabigat. Ngunit ngayon sila ay naiiba hindi sa katotohanan na sila ay nilikha para sa iba't ibang mga pag-encode, ngunit sa katotohanan na ang tagagawa ng font ay napunan o hindi ganap na napunan ang solong puwang ng code na may ilang mga vector form.

Mga nakatutuwang salita sa halip na mga letrang Ruso - kung paano ito ayusin

Tingnan natin ngayon kung paano lumilitaw ang mga krakozyabrs sa halip na teksto o, sa madaling salita, kung paano napili ang tamang pag-encode para sa Russian text. Sa totoo lang, ito ay nakatakda sa programa kung saan mo nilikha o i-edit ang mismong tekstong ito, o code gamit ang mga fragment ng teksto.

Para sa pag-edit at paglikha mga text file Sa personal, gumagamit ako ng napakahusay, sa palagay ko, . Gayunpaman, maaari nitong i-highlight ang syntax ng daan-daang iba pang mga programming at markup na wika, at mayroon ding kakayahang palawigin gamit ang mga plugin. Basahin detalyadong pagsusuri ang kahanga-hangang programang ito sa ibinigay na link.

SA tuktok na menu Ang Notepad++ ay may item na "Mga Pag-encode," kung saan magkakaroon ka ng pagkakataong mag-convert ng umiiral nang opsyon sa ginamit bilang default sa iyong site:

Sa kaso ng isang site sa Joomla 1.5 at mas mataas, pati na rin sa kaso ng isang blog sa WordPress, dapat mong piliin ang opsyon UTF 8 na walang BOM. Ano ang prefix ng BOM?

Ang katotohanan ay kapag sila ay bumubuo ng YUTF-16 encoding, sa ilang kadahilanan ay nagpasya silang ilakip ang isang bagay dito bilang ang kakayahang isulat ang code ng character kapwa sa direktang pagkakasunud-sunod (halimbawa, 0A15) at sa kabaligtaran (150A) . At upang maunawaan nang eksakto ng mga programa kung anong pagkakasunud-sunod na basahin ang mga code, naimbento ito BOM(Byte Order Mark o, sa madaling salita, lagda), na ipinahayag sa pagdaragdag ng tatlong karagdagang byte sa pinakasimula ng mga dokumento.

Sa pag-encode ng UTF-8, walang mga BOM na ibinigay para sa Unicode consortium, at samakatuwid ang pagdaragdag ng isang lagda (mga kilalang-kilalang dagdag na tatlong byte sa simula ng dokumento) ay pinipigilan lamang ang ilang mga programa sa pagbabasa ng code. Samakatuwid, kapag nagse-save ng mga file sa UTF, dapat nating palaging piliin ang opsyon na walang BOM (walang pirma). Kaya in advance ka protektahan ang iyong sarili mula sa pag-crawl ng mga krakozyabrs.

Ang kapansin-pansin ay ang ilang mga programa sa Windows ay hindi maaaring gawin ito (hindi nila mai-save ang teksto sa UTF-8 nang walang BOM), halimbawa, ang parehong kilalang Windows Notepad. Ini-save nito ang dokumento sa UTF-8, ngunit nagdaragdag pa rin ng lagda (tatlong dagdag na byte) sa simula nito. Bukod dito, ang mga byte na ito ay palaging magiging pareho - basahin ang code sa direktang pagkakasunod-sunod. Ngunit sa mga server, dahil sa maliit na bagay na ito, maaaring magkaroon ng problema - lalabas ang mga manloloko.

Samakatuwid, sa anumang pagkakataon huwag gumamit ng regular Windows Notepad upang i-edit ang mga dokumento sa iyong site kung ayaw mong lumitaw ang anumang mga bitak. Ang pinakamahusay at pinaka simpleng opsyon I think nabanggit na Notepad editor++, na halos walang mga disadvantages at binubuo lamang ng mga pakinabang.

Sa Notepad++, kapag pumili ka ng encoding, magkakaroon ka ng opsyong i-convert ang text sa UCS-2 encoding, na napakalapit sa Unicode standard. Gayundin sa Notepad posible na mag-encode ng teksto sa ANSI, i.e. may kaugnayan sa wikang Ruso, ito ay magiging Windows 1251, na inilarawan na namin sa itaas saan nagmula ang impormasyong ito?

Ito ay nakarehistro sa registry ng iyong operating room Mga sistema ng Windows- kung aling pag-encode ang pipiliin sa kaso ng ANSI, na pipiliin sa kaso ng OEM (para sa wikang Ruso ito ay magiging CP866). Kung mag-i-install ka ng isa pang default na wika sa iyong computer, ang mga pag-encode na ito ay papalitan ng mga katulad na mula sa kategorya ng ANSI o OEM para sa parehong wika.

Pagkatapos mong i-save ang dokumento sa Notepad++ sa pag-encode na kailangan mo o buksan ang dokumento mula sa site para sa pag-edit, makikita mo ang pangalan nito sa kanang sulok sa ibaba ng editor:

Para maiwasan ang rednecks, bilang karagdagan sa mga pagkilos na inilarawan sa itaas, magiging kapaki-pakinabang ang pagsulat sa header nito source code lahat ng pahina ng impormasyon ng site tungkol sa mismong pag-encode na ito, upang walang kalituhan sa server o lokal na host.

Sa pangkalahatan, sa lahat ng mga wika hypertext markup Bilang karagdagan sa Html, ginagamit ang isang espesyal na deklarasyon ng xml, na nagpapahiwatig ng pag-encode ng teksto.

Bago i-parse ang code, alam ng browser kung aling bersyon ang ginagamit at kung paano eksaktong kailangan nitong bigyang-kahulugan ang mga code ng character ng wikang iyon. Ngunit ang kapansin-pansin ay kung ise-save mo ang dokumento sa default na Unicode, maaaring tanggalin ang xml declaration na ito (ang pag-encode ay ituturing na UTF-8 kung walang BOM o UTF-16 kung mayroong BOM).

Sa kaso ng isang dokumento HTML na wika ginagamit upang ipahiwatig ang pag-encode elemento ng meta, na nakasulat sa pagitan ng pagbubukas at pagsasara ng Head tag:

... ...

Ang entry na ito ay medyo naiiba sa isa na pinagtibay, ngunit ganap na naaayon sa bagong pamantayan ng Html 5 na unti-unting ipinakilala, at ganap itong mauunawaan ng tama ng sinumang gumagamit kasalukuyang sandali mga browser.

Sa teorya, isang elemento ng Meta na nagpapahiwatig ng pag-encode HTML na dokumento mas magandang ilagay bilang mataas hangga't maaari sa header ng dokumento upang sa oras na makatagpo ang unang character sa teksto na hindi mula sa pangunahing ANSI (na palaging binabasa nang tama at sa anumang pagkakaiba-iba), ang browser ay dapat mayroon nang impormasyon kung paano bigyang-kahulugan ang mga code ng mga character na ito.

Good luck sa iyo! Magkita-kita tayo sa mga pahina ng blog site

Maaari kang manood ng higit pang mga video sa pamamagitan ng pagpunta sa
");">

Baka interesado ka

Anong nangyari Mga URL address, ano ang pagkakaiba ng absolute at mga kamag-anak na link para sa site
OpenServer - moderno lokal na server at isang halimbawa ng paggamit nito para sa Mga pag-install ng WordPress sa kompyuter
Ano ang Chmod, anong mga pahintulot ang itatalaga sa mga file at folder (777, 755, 666) at kung paano ito gagawin sa pamamagitan ng PHP
Paghahanap sa Yandex ayon sa site at online na tindahan

Naiintindihan ng isang computer ang proseso ng pag-convert nito sa isang form na nagbibigay-daan para sa mas maginhawang paghahatid, imbakan o awtomatikong pagproseso ng data na ito. Iba't ibang mga talahanayan ang ginagamit para sa layuning ito. ASCII encoding ay ang unang sistema na binuo sa Estados Unidos para sa pagtatrabaho sa Ingles na teksto, na pagkatapos ay naging laganap sa buong mundo. Ang artikulo sa ibaba ay nakatuon sa paglalarawan, mga tampok, katangian at karagdagang paggamit nito.

Pagpapakita at pag-iimbak ng impormasyon sa isang computer

Mga simbolo sa isang computer monitor o isang mobile phone digital na gadget ay nabuo batay sa mga hanay ng mga vector form ng iba't ibang mga character at isang code na nagbibigay-daan sa iyo upang mahanap sa kanila ang simbolo na kailangang maipasok sa tamang lugar. Ito ay kumakatawan sa isang pagkakasunud-sunod ng mga bit. Kaya, ang bawat karakter ay dapat na natatanging tumutugma sa isang hanay ng mga zero at isa, na lumilitaw sa isang tiyak, natatanging pagkakasunud-sunod.

Kung paano nagsimula ang lahat

Sa kasaysayan, ang mga unang computer ay Ingles-wika. Upang i-encode ang simbolikong impormasyon sa kanila, sapat na ang paggamit lamang ng 7 bits ng memorya, habang ang 1 byte na binubuo ng 8 bits ay inilaan para sa layuning ito. Ang bilang ng mga character na naiintindihan ng computer sa kasong ito ay 128. Kasama sa mga character na ito ang English alphabet kasama ang mga bantas, numero at ilang espesyal na character. Ang English-language seven-bit encoding na may kaukulang talahanayan (code page), na binuo noong 1963, ay tinawag na American Standard Code for Information Interchange. Karaniwan, ang pagdadaglat na "ASCII encoding" ay ginagamit at ginagamit pa rin upang tukuyin ito.

Transisyon sa multilinggwalismo

Sa paglipas ng panahon, ang mga computer ay naging malawakang ginagamit sa mga bansang hindi nagsasalita ng Ingles. Kaugnay nito, nagkaroon ng pangangailangan para sa mga encoding na nagpapahintulot sa paggamit ng mga pambansang wika. Napagpasyahan na huwag muling likhain ang gulong at kunin ang ASCII bilang batayan. Ang talahanayan ng pag-encode sa bagong edisyon ay lumawak nang malaki. Ang paggamit ng 8th bit ay naging posible upang isalin sa wika ng kompyuter 256 characters na.

Paglalarawan

Ang pag-encode ng ASCII ay may talahanayan na nahahati sa 2 bahagi. Ang unang kalahati lamang nito ang itinuturing na pangkalahatang tinatanggap na pamantayang pang-internasyonal. Kabilang dito ang:

  • Mga character na may mga serial number mula 0 hanggang 31, na naka-encode sa mga sequence mula 00000000 hanggang 00011111. Nakalaan ang mga ito para sa mga control character na kumokontrol sa proseso ng pagpapakita ng text sa screen o printer, pagpapatunog ng sound signal, atbp.
  • Ang mga character na may NN sa talahanayan mula 32 hanggang 127, na naka-encode ng mga sequence mula 00100000 hanggang 01111111 ay bumubuo sa karaniwang bahagi ng talahanayan. Kabilang dito ang espasyo (N 32), mga titik ng alpabetong Latin (maliit at malaki), sampung digit na mga numero mula 0 hanggang 9, mga bantas, mga bracket ng iba't ibang estilo at iba pang mga simbolo.
  • Mga character na may mga serial number mula 128 hanggang 255, na naka-encode ng mga sequence mula 10000000 hanggang 11111111. Kabilang dito ang mga titik ng pambansang alpabeto maliban sa Latin. Ito ang alternatibong bahagi ng talahanayan ng ASCII na ginagamit upang i-convert ang mga character na Ruso sa anyo ng computer.

Ilang mga ari-arian

Kasama sa mga tampok ng pag-encode ng ASCII ang pagkakaiba sa pagitan ng mga titik na "A" - "Z" na mas mababa at malaking titik isang bit lang. Ang sitwasyong ito ay lubos na pinasimple ang pagpaparehistro ng conversion, pati na rin ang pagsuri kung kabilang ito ibinigay na saklaw mga halaga. Bilang karagdagan, ang lahat ng mga titik sa sistema ng pag-encode ng ASCII ay kinakatawan ng kanilang sariling mga numero ng pagkakasunud-sunod sa alpabeto, na nakasulat na may 5 mga numero sa binary number system, na sinusundan ng maliit na titik nagkakahalaga ng 011 2, at ang pinakamataas ay nagkakahalaga ng 010 2.

Kabilang sa mga tampok ng pag-encode ng ASCII ay ang representasyon ng 10 digit - "0" - "9". Sa pangalawang sistema ng numero nagsisimula sila sa 00112 at nagtatapos sa 2 mga halaga ng numero. Kaya, ang 0101 2 ay katumbas decimal na numero lima, kaya ang simbolo na "5" ay nakasulat bilang 0011 01012. Batay sa kung ano ang sinabi, madali mong ma-convert binary decimal na mga numero sa isang ASCII string sa pamamagitan ng pagdaragdag ng bit sequence 00112 sa bawat nibble sa kaliwa.

"Unicode"

Tulad ng alam mo, libu-libong mga character ang kinakailangan upang magpakita ng mga teksto sa mga wika ng pangkat ng Southeast Asian. Ang ganoong bilang ng mga ito ay hindi maaaring ilarawan sa anumang paraan sa isang byte ng impormasyon, kaya kahit na ang mga pinahabang bersyon ng ASCII ay hindi na matugunan ang tumaas na mga pangangailangan ng mga user mula sa iba't ibang bansa.

Kaya, ang pangangailangan ay lumitaw upang lumikha ng isang unibersal na pag-encode ng teksto, ang pag-unlad kung saan, sa pakikipagtulungan sa maraming mga pinuno ng pandaigdigang industriya ng IT, ay isinagawa ng Unicode consortium. Ang mga espesyalista nito ay lumikha ng UTF 32 system. Ang pangunahing kawalan ay ang matalim na pagtaas sa dami kinakailangang memorya kasing dami ng 4 na beses, na nagdulot ng maraming problema.

Kasabay nito, para sa karamihan ng mga bansang may mga opisyal na wika, na kabilang sa grupong Indo-European, ang bilang ng mga character na katumbas ng 2 32 ay higit pa sa labis.

Bilang resulta karagdagang trabaho Ipinakilala ng mga espesyalista mula sa Unicode consortium ang UTF-16 encoding. Naging opsyon ito para sa pag-convert ng simbolikong impormasyon na nababagay sa lahat kapwa sa dami ng memorya na kinakailangan at bilang ng mga naka-encode na character. Iyon ang dahilan kung bakit ang UTF-16 ay pinagtibay bilang default at nangangailangan ng 2 byte na nakalaan para sa isang character.

Kahit na ang medyo advanced at matagumpay na bersyon na ito ng Unicode ay may ilang mga kakulangan, at pagkatapos ng paglipat mula sa pinalawig na bersyon ng ASCII sa UTF-16, ang bigat ng dokumento ay nadoble.

Kaugnay nito, napagpasyahan na gumamit ng UTF-8 variable length encoding. Sa kasong ito, ang bawat karakter ng pinagmulang teksto ay naka-encode bilang isang pagkakasunud-sunod ng haba mula 1 hanggang 6 na byte.

Makipag-ugnayan sa American standard code para sa pagpapalitan ng impormasyon

Ang lahat ng Latin na character sa UTF-8 variable na haba ay naka-encode sa 1 byte, tulad ng sa ASCII encoding system.

Ang isang espesyal na tampok ng YTF-8 ay na sa kaso ng teksto sa Latin nang hindi gumagamit ng iba pang mga character, kahit na ang mga programa na hindi nakakaunawa sa Unicode ay mababasa pa rin ito. Sa madaling salita, ang base ASCII text encoding ay nagiging bahagi lamang ng bagong variable-length na UTF. Ang mga cyrillic na character sa YTF-8 ay sumasakop ng 2 byte, at, halimbawa, mga Georgian na character - 3 byte. Sa pamamagitan ng paglikha ng UTF-16 at 8, nalutas ang pangunahing problema ng paglikha ng isang solong code space sa mga font. Simula noon, ang mga tagagawa ng font ay maaari lamang punan ang talahanayan ng mga vector form ng mga character ng teksto batay sa kanilang mga pangangailangan.

Sa iba't-ibang mga operating system ibinibigay ang kagustuhan sa iba't ibang pag-encode. Upang makapagbasa at makapag-edit ng mga tekstong nai-type sa ibang pag-encode, ginagamit ang mga programa sa conversion ng tekstong Ruso. Ang ilan mga text editor naglalaman ng mga built-in na transcoder at nagbibigay-daan sa iyong magbasa ng teksto anuman ang pag-encode.

Ngayon alam mo na kung gaano karaming mga character ang nasa ASCII encoding at kung paano at bakit ito binuo. Siyempre, ngayon ang pamantayan ng Unicode ay pinakalaganap sa mundo. Gayunpaman, hindi natin dapat kalimutan na ito ay batay sa ASCII, kaya ang kontribusyon ng mga developer nito sa larangan ng IT ay dapat pahalagahan.

Dec Hex Simbolo Dec Hex Simbolo
000 00 espesyalista. HINDI 128 80 Ђ
001 01 espesyalista. SOH 129 81 Ѓ
002 02 espesyalista. STX 130 82
003 03 espesyalista. ETX 131 83 ѓ
004 04 espesyalista. EOT 132 84
005 05 espesyalista. ENQ 133 85
006 06 espesyalista. ACK 134 86
007 07 espesyalista. BEL 135 87
008 08 espesyalista. B.S. 136 88
009 09 espesyalista. TAB 137 89
010 0Aespesyalista. LF 138 8AЉ
011 0Bespesyalista. VT 139 8B‹ ‹
012 0Cespesyalista. FF 140 8CЊ
013 0Despesyalista. CR 141 8DЌ
014 0Eespesyalista. KAYA 142 8EЋ
015 0Fespesyalista. S.I. 143 8FЏ
016 10 espesyalista. DLE 144 90 ђ
017 11 espesyalista. DC1 145 91
018 12 espesyalista. DC2 146 92
019 13 espesyalista. DC3 147 93
020 14 espesyalista. DC4 148 94
021 15 espesyalista. N.A.K. 149 95
022 16 espesyalista. SYN 150 96
023 17 espesyalista. ETB 151 97
024 18 espesyalista. MAAARI 152 98
025 19 espesyalista. E.M. 153 99
026 1Aespesyalista. SUB 154 9Aљ
027 1Bespesyalista. ESC 155 9B
028 1Cespesyalista. FS 156 9Cњ
029 1Despesyalista. G.S. 157 9Dќ
030 1Eespesyalista. R.S. 158 9Eћ
031 1Fespesyalista. US 159 9Fџ
032 20 clutch SP (Space) 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8Yo
041 29 ) 169 A9©
042 2A* 170 A.A.Є
043 2B+ 171 AB«
044 2C, 172 A.C.¬
045 2D- 173 AD­
046 2E. 174 A.E.®
047 2F/ 175 A.F.Ї
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8e
057 39 9 185 B9
058 3A: 186 B.A.є
059 3B; 187 BB»
060 3C< 188 B.C.ј
061 3D= 189 BDЅ
062 3E> 190 MAGINGѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 SA
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 AT
071 47 G 199 C7 Z
072 48 H 200 C8 AT
073 49 ako 201 C9 Y
074 4AJ 202 C.A. SA
075 4BK 203 C.B. L
076 4CL 204 CC M
077 4DM 205 CD N
078 4EN 206 C.E. TUNGKOL SA
079 4FO 207 CF P
080 50 P 208 D0 R
081 51 Q 209 D1 SA
082 52 R 210 D2 T
083 53 S 211 D3 U
084 54 T 212 D4 F
085 55 U 213 D5 X
086 56 V 214 D6 C
087 57 W 215 D7 H
088 58 X 216 D8 Sh
089 59 Y 217 D9 SCH
090 5AZ 218 D.A. Kommersant
091 5B[ 219 D.B. Y
092 5C\ 220 DC b
093 5D] 221 DD E
094 5E^ 222 DE Yu
095 5F_ 223 DF ako
096 60 ` 224 E0 A
097 61 a 225 E1 b
098 62 b 226 E2 V
099 63 c 227 E3 G
100 64 d 228 E4 d
101 65 e 229 E5 e
102 66 f 230 E6 at
103 67 g 231 E7 h
104 68 h 232 E8 At
105 69 i 233 E9 ika
106 6Aj 234 E.A. Upang
107 6Bk 235 E.B. l
108 6Cl 236 E.C. m
109 6Dm 237 ED n
110 6En 238 E.E. O
111 6Fo 239 E.F. n
112 70 p 240 F0 r
113 71 q 241 F1 Sa
114 72 r 242 F2 T
115 73 s 243 F3 sa
116 74 t 244 F4 f
117 75 u 245 F5 X
118 76 v 246 F6 ts
119 77 w 247 F7 h
120 78 x 248 F8 w
121 79 y 249 F9 sch
122 7Az 250 F.A. ъ
123 7B{ 251 FB s
124 7C| 252 F.C. b
125 7D} 253 FD eh
126 7E~ 254 F.E. yu
127 7FEspesyalista. DEL 255 FF ako

ASCII Windows character code table.
Paglalarawan ng mga espesyal na (kontrol) na mga character

Dapat tandaan na ang mga ASCII table control character ay orihinal na ginamit upang matiyak ang pagpapalitan ng data sa pamamagitan ng teletypewriter, pagpasok ng data mula sa punched tape, at para sa simpleng kontrol ng mga panlabas na device.
Sa kasalukuyan, karamihan sa mga tagapamahala Mga character na ASCII hindi na dinadala ng mga talahanayan ang pagkarga na ito at maaaring gamitin para sa iba pang mga layunin.
Code Paglalarawan
NUL, 00Null, walang laman
SOH, 01Simula Ng Heading
STX, 02Simula ng TeXt, ang simula ng text.
ETX, 03Katapusan ng TeXt, pagtatapos ng teksto
EOT, 04End of Transmission, end of transmission
ENQ, 05Magtanong. Pakikumpirma
ACK, 06Pagkilala. Kinukumpirma ko
BEL, 07Bell, tumawag ka
BS, 08Backspace, bumalik sa isang character
TAB, 09Tab, pahalang na tab
LF, 0ALine Feed, line feed.
Sa ngayon, sa karamihan ng mga programming language ay tinukoy ito bilang \n
VT, 0BVertical Tab, patayong tabulation.
FF, 0CFeed ng Form, feed ng page, bagong page
CR, 0DPagbabalik ng karwahe, pagbabalik ng karwahe.
Sa ngayon, sa karamihan ng mga programming language, ito ay tinutukoy bilang \r
KAYA,0EShift Out, palitan ang kulay ng ink ribbon sa printing device
SI,0FShift In, ibalik ang kulay ng ink ribbon sa printing device pabalik
DLE, 10Data Link Escape, inililipat ang channel sa paghahatid ng data
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Kontrol ng Device, mga simbolo ng kontrol ng device
NAK, 15Negative Acknowledgement, hindi ko kinukumpirma.
SYN, 16Pag-synchronize. Simbolo ng pag-synchronize
ETB, 17Katapusan ng Text Block, dulo ng text block
PWEDE, 18Kanselahin, pagkansela ng isang naunang ipinadala
EM, 19Katapusan ng Medium
SUB, 1AKapalit, kapalit.
Inilagay sa lugar ng isang simbolo na ang kahulugan ay nawala o nasira sa panahon ng paghahatidESC, 1B
Escape Control SequenceFS, 1C
File Separator, file separatorGS, 1D
Group SeparatorRS, 1E
Record Separator, record separatorUS, 1F
Unit SeparatorDEL, 7F

[Tanggalin, burahin ang huling character. 8-bit na pag-encode: ASCII, KOI-8R at CP1251

] Ang mga unang encoding table na ginawa sa United States ay hindi gumamit ng ikawalong bit sa isang byte. Ang teksto ay kinakatawan bilang isang pagkakasunud-sunod ng mga byte, ngunit ang ikawalong bit ay hindi isinasaalang-alang (ito ay ginamit para sa mga opisyal na layunin). ASCII Ang talahanayan ay naging karaniwang tinatanggap na pamantayan

(American Standard Code para sa Pagpapalitan ng Impormasyon). Ang unang 32 character ng talahanayan ng ASCII (00 hanggang 1F) ay ginamit para sa mga hindi naka-print na character. Idinisenyo ang mga ito upang kontrolin ang isang aparato sa pag-print, atbp. Ang natitira - mula 20 hanggang 7F - ay regular (napi-print) na mga character.

DecHexTalahanayan 1 - ASCII encodingOctChar
0 0 000 Paglalarawan
1 1 001 null
2 2 002 simula ng heading
3 3 003 simula ng text
4 4 004 pagtatapos ng teksto
5 5 005 pagtatapos ng transmission
6 6 006 pagtatanong
7 7 007 kilalanin
8 8 010 kampana
9 9 011 backspace
10 A 012 pahalang na tab
11 B 013 bagong linya
12 C 014 patayong tab
13 D 015 bagong pahina
14 E 016 pagbabalik ng karwahe
15 F 017 lumipat sa labas
16 10 020 lumipat sa
17 11 021 pagtakas ng link ng data
18 12 022 kontrol ng device 1
19 13 023 kontrol ng device 2
20 14 024 kontrol ng aparato 3
21 15 025 kontrol ng aparato 4
22 16 026 negatibong pagkilala
23 17 027 sabaysabay na idle
24 18 030 pagtatapos ng trans. harangan
25 19 031 kanselahin
26 1A 032 dulo ng daluyan
27 1B 033 kapalit
28 1C 034 tumakas
29 1D 035 file separator
30 1E 036 pangkat separator
31 1F 037 record separator
32 20 040 unit separator
33 21 041 !
34 22 042 "
35 23 043 #
36 24 044 $
37 25 045 %
38 26 046 &
39 27 047 "
40 28 050 (
41 29 051 )
42 2A 052 *
43 2B 053 +
44 2C 054 ,
45 2D 055 -
46 2E 056 .
47 2F 057 /
48 30 060 0
49 31 061 1
50 32 062 2
51 33 063 3
52 34 064 4
53 35 065 5
54 36 066 6
55 37 067 7
56 38 070 8
57 39 071 9
58 3A 072 :
59 3B 073 ;
60 3C 074 <
61 3D 075 =
62 3E 076 >
63 3F 077 ?
DecHexTalahanayan 1 - ASCII encodingOct
64 40 100 @
65 41 101 A
66 42 102 B
67 43 103 C
68 44 104 D
69 45 105 E
70 46 106 F
71 47 107 G
72 48 110 H
73 49 111 ako
74 4A 112 J
75 4B 113 K
76 4C 114 L
77 4D 115 M
78 4E 116 N
79 4F 117 O
80 50 120 P
81 51 121 Q
82 52 122 R
83 53 123 S
84 54 124 T
85 55 125 U
86 56 126 V
87 57 127 W
88 58 130 X
89 59 131 Y
90 5A 132 Z
91 5B 133 [
92 5C 134 \
93 5D 135 ]
94 5E 136 ^
95 5F 137 _
96 60 140 `
97 61 141 a
98 62 142 b
99 63 143 c
100 64 144 d
101 65 145 e
102 66 146 f
103 67 147 g
104 68 150 h
105 69 151 i
106 6A 152 j
107 6B 153 k
108 6C 154 l
109 6D 155 m
110 6E 156 n
111 6F 157 o
112 70 160 p
113 71 161 q
114 72 162 r
115 73 163 s
116 74 164 t
117 75 165 u
118 76 166 v
119 77 167 w
120 78 170 x
121 79 171 y
122 7A 172 z
123 7B 173 {
124 7C 174 |
125 7D 175 }
126 7E 176 ~
127 7F 177 espasyo

DEL

Upang gawin ito, napagpasyahan na gamitin ang ikawalong bit sa bawat byte. Dahil dito, 128 pang value ang available (mula 80 hanggang FF) na maaaring magamit para mag-encode ng mga character. Ang una sa walong-bit na mga talahanayan ay "pinalawak na ASCII" ( Pinalawak na ASCII) - kasama ang iba't ibang mga variant ng mga Latin na character na ginagamit sa ilang mga wika ng Kanlurang Europa. Naglalaman din ito ng iba pang mga karagdagang simbolo, kabilang ang mga pseudographic.

Pinapayagan ng mga pseudographic na character, sa pamamagitan lamang ng pagpapakita mga character ng teksto, magbigay ng ilang pagkakahawig ng mga graphics. Gamit ang pseudographics, halimbawa, gumagana ang isang control program FAR files Manager.

Walang mga letrang Ruso sa talahanayan ng Extended ASCII. Ang Russia (dating USSR) at iba pang mga bansa ay lumikha ng kanilang sariling mga pag-encode na naging posible upang kumatawan sa mga partikular na "pambansang" character sa 8-bit na mga text file - mga Latin na titik ng Polish at Czech na mga wika, Cyrillic (kabilang ang mga letrang Ruso) at iba pang mga alpabeto.

Sa lahat ng mga pag-encode na naging laganap, ang unang 127 character (iyon ay, ang byte value na may ikawalong bit na katumbas ng 0) ay kapareho ng ASCII. Kaya gumagana ang isang ASCII file sa alinman sa mga encoding na ito; mga titik wikang Ingles pare-pareho silang ipinakita.

Organisasyon ISO(International Standardization Organization) ay nagpatibay ng isang pangkat ng mga pamantayan ISO 8859. Tinutukoy nito ang 8-bit na pag-encode para sa iba't ibang grupo mga wika. Kaya, ang ISO 8859-1 ay isang Extended ASCII table para sa USA at Western Europe. At ang ISO 8859-5 ay isang talahanayan para sa Cyrillic alphabet (kabilang ang Russian).

Gayunpaman, para sa makasaysayang mga kadahilanan, ang ISO 8859-5 encoding ay hindi nag-ugat. Sa katotohanan, ang mga sumusunod na pag-encode ay ginagamit para sa wikang Ruso:

Pahina ng Code 866 ( CP866), aka "DOS", aka "alternatibong GOST encoding". Malawakang ginagamit hanggang sa kalagitnaan ng 90s; ngayon ginagamit sa isang limitadong lawak. Halos hindi ginagamit para sa pamamahagi ng mga teksto sa Internet.
- KOI-8. Binuo noong 70-80s. Ay isang karaniwang tinatanggap na pamantayan para sa pagpapadala ng mga mensaheng mail sa Russian Internet. Malawak din itong ginagamit sa mga operating system ng pamilyang Unix, kabilang ang Linux. Ang bersyon ng KOI-8, na idinisenyo para sa Russian, ay tinatawag KOI-8R; Mayroong mga bersyon para sa iba pang mga wikang Cyrillic (halimbawa, ang KOI8-U ay isang bersyon para sa wikang Ukrainian).
- Pahina ng Code 1251, CP1251,Windows-1251. Binuo ng Microsoft upang suportahan ang wikang Ruso sa Windows.

Ang pangunahing bentahe ng CP866 ay ang pagpapanatili ng mga pseudo-graphics na character sa parehong mga lugar tulad ng sa Extended ASCII; samakatuwid, ang mga banyagang programa ng teksto, halimbawa, ang sikat na Norton Commander, ay maaaring gumana nang walang pagbabago. Ginagamit na ngayon ang CP866 para sa mga Windows program na tumatakbo sa mga text window o full-screen text mode, kasama ang FAR Manager.

Mga text sa CP866 mga nakaraang taon ay medyo bihira (ngunit ginagamit ito upang i-encode ang mga pangalan ng file na Ruso sa Windows). Samakatuwid, tatalakayin natin nang mas detalyado ang dalawa pang pag-encode - KOI-8R at CP1251.



Tulad ng nakikita mo, sa talahanayan ng pag-encode ng CP1251, ang mga letrang Ruso ay nakaayos sa pagkakasunud-sunod ng alpabeto (kasama ang pagbubukod, gayunpaman, ng titik E). Salamat sa lokasyong ito mga programa sa kompyuter Napakadaling pagbukud-bukurin ayon sa alpabeto.

Ngunit sa KOI-8R ang pagkakasunud-sunod ng mga letrang Ruso ay tila random. Ngunit sa katotohanan ay hindi ito ang kaso.

Sa maraming mas lumang mga programa, nawala ang ika-8 bit kapag nagpoproseso o nagpapadala ng teksto. (Ngayon ang mga naturang programa ay halos "wala na", ngunit noong huling bahagi ng 80s - unang bahagi ng 90s ay laganap sila). Upang makakuha ng 7-bit na halaga mula sa isang 8-bit na halaga, ibawas lamang ang 8 mula sa pinaka makabuluhang digit; halimbawa, ang E1 ay nagiging 61.

Ngayon ihambing ang KOI-8R sa talahanayan ng ASCII (Talahanayan 1). Makikita mo na ang mga letrang Ruso ay inilalagay sa malinaw na mga sulat sa mga Latin. Kung mawala ang ikawalong bit, ang maliliit na letrang Ruso ay magiging malalaking letrang Latin, at ang malalaking letrang Ruso ay magiging maliliit na letrang Latin. Kaya, ang E1 sa KOI-8 ay ang Russian "A", habang ang 61 sa ASCII ay ang Latin na "a".

Kaya, pinapayagan ka ng KOI-8 na mapanatili ang pagiging madaling mabasa ng Russian text kapag nawala ang ika-8 bit. Ang “Kumusta sa lahat” ay nagiging “pRIWET WSEM”.

Kamakailan lamang at pagkakasunud-sunod ng alpabeto Ang pag-aayos ng mga character sa talahanayan ng pag-encode, at pagiging madaling mabasa sa pagkawala ng ika-8 bit, ay nawala ang kanilang mapagpasyang kahalagahan. Ikawalong bit in mga modernong kompyuter ay hindi nawawala sa panahon ng paghahatid o pagproseso. At ang alpabetikong pag-uuri ay ginagawa nang isinasaalang-alang ang pag-encode, at hindi simpleng paghahambing mga code (Sa pamamagitan ng paraan, ang mga code ng CP1251 ay hindi ganap na nakaayos ayon sa alpabeto - ang titik E ay wala sa lugar nito).

Dahil sa katotohanan na mayroong dalawang karaniwang pag-encode, kapag nagtatrabaho sa Internet (mail, nagba-browse sa mga Web site), maaari mong makita kung minsan ang isang walang kahulugan na hanay ng mga titik sa halip na tekstong Ruso. Halimbawa, "AKO SI SBYUFEMHEL." Ito ay mga salitang "may paggalang" lamang; ngunit sila ay na-encode sa CP1251 encoding, at na-decode ng computer ang teksto gamit ang KOI-8 table. Kung ang parehong mga salita ay, sa kabaligtaran, ay naka-encode sa KOI-8, at na-decode ng computer ang teksto gamit ang CP1251 table, ang magiging resulta ay “U KHBTSEOYEN”.

Minsan nangyayari na ang computer ay nagde-decrypt Mga titik ng Ruso at ganap na ayon sa isang talahanayan na hindi inilaan para sa wikang Ruso. Pagkatapos, sa halip na mga letrang Ruso, lumilitaw ang isang walang kahulugan na hanay ng mga simbolo (halimbawa, mga letrang Latin ng mga wika sa Silangang Europa); madalas silang tinatawag na "crocozybras".

Sa karamihan ng mga kaso, ang mga modernong programa ay nakayanan ang pagtukoy sa mga pag-encode ng mga dokumento sa Internet ( mga email at mga Web page) nang nakapag-iisa. Ngunit kung minsan sila ay "misfire", at pagkatapos ay makikita mo ang mga kakaibang pagkakasunud-sunod ng mga letrang Ruso o "krokozyabry". Bilang isang patakaran, sa ganoong sitwasyon, upang ipakita ang totoong teksto sa screen, sapat na upang manu-manong piliin ang pag-encode sa menu ng programa.

Ang impormasyon mula sa pahinang http://open-office.edusite.ru/TextProcessor/p5aa1.html ay ginamit para sa artikulong ito.

Materyal na kinuha mula sa site: