Tulad ng alam mo, ang isang computer ay nag-iimbak ng impormasyon sa binary form, na kumakatawan dito bilang isang pagkakasunud-sunod ng mga isa at mga zero. Upang isalin ang impormasyon sa isang form na maginhawa para sa pang-unawa ng tao, ang bawat natatanging pagkakasunud-sunod ng mga numero ay pinapalitan ng kaukulang simbolo nito kapag ipinakita.
Ang isa sa mga sistema para sa pag-uugnay ng mga binary code na may naka-print at kontrol na mga character ay
Sa kasalukuyang antas ng pag-unlad ng teknolohiya ng computer, hindi kinakailangang malaman ng user ang code ng bawat partikular na karakter. Gayunpaman, ang pangkalahatang pag-unawa sa kung paano isinasagawa ang coding ay lubhang kapaki-pakinabang, at para sa ilang mga kategorya ng mga espesyalista, kahit na kinakailangan.
Paglikha ng ASCII
Ang pag-encode ay orihinal na binuo noong 1963 at pagkatapos ay na-update nang dalawang beses sa loob ng 25 taon.
Sa orihinal na bersyon, ang talahanayan ng character ng ASCII ay may kasamang 128 na mga character sa kalaunan ay lumitaw ang isang pinahabang bersyon, kung saan ang unang 128 na mga character ay na-save, at ang mga dating nawawalang character ay itinalaga sa mga code na may kasamang ikawalong bit.
Sa loob ng maraming taon, ang encoding na ito ang pinakasikat sa mundo. Noong 2006, kinuha ng Latin 1252 ang nangungunang posisyon, at mula sa katapusan ng 2007 hanggang sa kasalukuyan, matatag na hawak ng Unicode ang nangungunang posisyon.
Representasyon ng computer ng ASCII
Ang bawat ASCII character ay may sariling code, na binubuo ng 8 character na kumakatawan sa isang zero o isang isa. Ang pinakamababang numero sa representasyong ito ay zero (walong zero sa binary system), na siyang code ng unang elemento sa talahanayan.
Dalawang code sa talahanayan ang nakalaan para sa paglipat sa pagitan ng karaniwang US-ASCII at ng pambansang variant nito.
Matapos ang ASCII ay nagsimulang magsama ng hindi 128, ngunit 256 na mga character, isang variant ng pag-encode ang naging laganap, kung saan ang orihinal na bersyon ng talahanayan ay nakaimbak sa unang 128 na mga code na may 8th bit zero. Ang mga pambansang nakasulat na character ay naka-imbak sa itaas na kalahati ng talahanayan (posisyon 128-255).
Hindi kailangang malaman ng user ang mga ASCII character code nang direkta. Karaniwang kailangan lang malaman ng isang developer ng software ang numero ng elemento sa talahanayan upang kalkulahin ang code nito gamit ang binary system kung kinakailangan.
wikang Ruso
Matapos ang pagbuo ng mga pag-encode para sa mga wikang Scandinavian, Chinese, Korean, Greek, atbp. noong unang bahagi ng 70s, nagsimulang lumikha ang Unyong Sobyet ng sarili nitong bersyon. Di-nagtagal, nabuo ang isang bersyon ng isang 8-bit na encoding na tinatawag na KOI8, na pinapanatili ang unang 128 ASCII character code at naglalaan ng parehong bilang ng mga posisyon para sa mga titik ng pambansang alpabeto at karagdagang mga character.
Bago ang pagpapakilala ng Unicode, pinangungunahan ng KOI8 ang Russian segment ng Internet. Mayroong mga opsyon sa pag-encode para sa parehong alpabetong Ruso at Ukrainian.
Mga problema sa ASCII
Dahil ang bilang ng mga elemento kahit na sa pinalawig na talahanayan ay hindi lalampas sa 256, walang posibilidad na mapaunlakan ang ilang magkakaibang mga script sa isang pag-encode. Noong 90s, ang problemang "crocozyabr" ay lumitaw sa Runet, kapag ang mga tekstong nai-type sa mga character na Russian ASCII ay hindi ipinakita nang tama.
Ang problema ay ang iba't ibang ASCII code ay hindi tumugma sa isa't isa. Tandaan natin na ang iba't ibang mga character ay maaaring matatagpuan sa mga posisyon 128-255, at kapag binago ang isang Cyrillic encoding sa isa pa, ang lahat ng mga titik ng teksto ay pinalitan ng iba na may magkaparehong numero sa ibang bersyon ng encoding.
Kasalukuyang Katayuan
Sa pagdating ng Unicode, ang katanyagan ng ASCII ay nagsimulang bumaba nang husto.
Ang dahilan nito ay nakasalalay sa katotohanan na ang bagong pag-encode ay naging posible upang mapaunlakan ang mga character mula sa halos lahat ng nakasulat na wika. Sa kasong ito, ang unang 128 ASCII character ay tumutugma sa parehong mga character sa Unicode.
Noong 2000, ang ASCII ang pinakasikat na encoding sa Internet at ginamit sa 60% ng mga web page na na-index ng Google. Noong 2012, ang bahagi ng naturang mga pahina ay bumaba sa 17%, at ang Unicode (UTF-8) ay pumalit sa pinakasikat na encoding.
Kaya, ang ASCII ay isang mahalagang bahagi ng kasaysayan ng teknolohiya ng impormasyon, ngunit ang paggamit nito sa hinaharap ay tila hindi kapani-paniwala.
Ang hanay ng mga character kung saan nakasulat ang teksto ay tinatawag alpabeto.
Ang bilang ng mga character sa alpabeto ay nito kapangyarihan.
Formula para sa pagtukoy ng dami ng impormasyon: N=2b,
kung saan ang N ay ang kapangyarihan ng alpabeto (bilang ng mga character),
b – bilang ng mga bits (bigat ng impormasyon ng simbolo).
Ang alpabeto na may kapasidad na 256 na mga character ay maaaring tumanggap ng halos lahat ng kinakailangang mga character. Ang alpabetong ito ay tinatawag na sapat.
kasi 256 = 2 8, kung gayon ang bigat ng 1 character ay 8 bits.
Ang yunit ng pagsukat na 8 bits ay binigyan ng pangalan 1 byte:
1 byte = 8 bits.
Ang binary code ng bawat character sa computer text ay tumatagal ng 1 byte ng memory.
Paano kinakatawan ang impormasyon ng teksto sa memorya ng computer?
Ang kaginhawahan ng byte-by-byte na pag-encode ng character ay halata dahil ang isang byte ay ang pinakamaliit na bahagi ng memorya na naa-address at, samakatuwid, maaaring ma-access ng processor ang bawat karakter nang hiwalay kapag nagpoproseso ng text. Sa kabilang banda, ang 256 na mga character ay sapat na bilang upang kumatawan sa iba't ibang uri ng simbolikong impormasyon.
Ngayon ang tanong ay lumitaw, kung aling walong-bit na binary code ang itatalaga sa bawat karakter.
Malinaw na ito ay isang kondisyon na bagay na maaari kang makabuo ng maraming paraan ng pag-encode.
Ang lahat ng mga character ng alpabeto ng computer ay binibilang mula 0 hanggang 255. Ang bawat numero ay tumutugma sa isang walong-bit na binary code mula 00000000 hanggang 11111111. Ang code na ito ay simpleng serial number ng character sa binary number system.
Ang isang talahanayan kung saan ang lahat ng mga character ng alpabeto ng computer ay itinalaga ng mga serial number ay tinatawag na isang encoding table.
Iba't ibang uri ng computer ang gumagamit ng iba't ibang encoding table.
Ang talahanayan ay naging internasyonal na pamantayan para sa mga PC ASCII(basahin ang tanong) (American Standard Code for Information Interchange).
Ang talahanayan ng ASCII code ay nahahati sa dalawang bahagi.
Tanging ang unang kalahati ng talahanayan ay ang internasyonal na pamantayan, i.e. mga simbolo na may mga numero mula sa 0 (00000000), hanggang sa 127 (01111111).
ASCII encoding table structure
Serial number |
Code |
Simbolo |
0 - 31 |
00000000 - 00011111 |
Ang mga simbolo na may mga numero mula 0 hanggang 31 ay karaniwang tinatawag na mga simbolo ng kontrol. |
32 - 127 |
00100000 - 01111111 |
Karaniwang bahagi ng talahanayan (Ingles). Kabilang dito ang maliliit at malalaking titik ng alpabetong Latin, mga decimal na numero, mga bantas, lahat ng uri ng bracket, komersyal at iba pang mga simbolo. |
128 - 255 |
10000000 - 11111111 |
Alternatibong bahagi ng talahanayan (Russian). |
Unang kalahati ng ASCII code table
Pakitandaan na sa talahanayan ng pag-encode, ang mga titik (malaki at maliit na titik) ay nakaayos sa alpabetikong pagkakasunud-sunod, at ang mga numero ay inayos sa pataas na pagkakasunud-sunod. Ang pagsunod sa pagkakasunud-sunod ng lexicographic sa pagsasaayos ng mga simbolo ay tinatawag na prinsipyo ng sequential coding ng alpabeto.
Para sa mga titik ng alpabetong Ruso, ang prinsipyo ng sequential coding ay sinusunod din.
Pangalawang kalahati ng talahanayan ng ASCII code
Sa kasamaang palad, kasalukuyang may limang magkakaibang Cyrillic encoding (KOI8-R, Windows. MS-DOS, Macintosh at ISO). Dahil dito, madalas na lumitaw ang mga problema sa paglilipat ng tekstong Ruso mula sa isang computer patungo sa isa pa, mula sa isang software system patungo sa isa pa.
Sa kronolohikal, ang isa sa mga unang pamantayan para sa pag-encode ng mga letrang Ruso sa mga computer ay KOI8 ("Kodigo ng Pagpapalitan ng Impormasyon, 8-bit"). Ang pag-encode na ito ay ginamit noong 70s sa mga computer ng ES computer series, at mula sa kalagitnaan ng 80s nagsimula itong gamitin sa mga unang Russified na bersyon ng UNIX operating system.
Mula sa unang bahagi ng 90s, ang panahon ng pangingibabaw ng MS DOS operating system, ang CP866 encoding ay nananatili ("CP" ay nangangahulugang "Code Page", "code page").
Ang mga Apple computer na nagpapatakbo ng Mac OS operating system ay gumagamit ng sarili nilang Mac encoding.
Bilang karagdagan, inaprubahan ng International Standards Organization (ISO) ang isa pang encoding na tinatawag na ISO 8859-5 bilang pamantayan para sa wikang Russian.
Ang pinakakaraniwang pag-encode na kasalukuyang ginagamit ay ang Microsoft Windows, pinaikling CP1251.
Mula noong huling bahagi ng dekada 90, ang problema sa pag-standardize ng character encoding ay nalutas sa pamamagitan ng pagpapakilala ng isang bagong internasyonal na pamantayan na tinatawag na Unicode. Ito ay isang 16-bit na encoding, i.e. naglalaan ito ng 2 byte ng memorya para sa bawat karakter. Siyempre, pinapataas nito ang dami ng memorya na inookupahan ng 2 beses. Ngunit ang naturang talahanayan ng code ay nagbibigay-daan sa pagsasama ng hanggang 65536 na mga character. Kasama sa kumpletong detalye ng pamantayan ng Unicode ang lahat ng umiiral, wala na at artipisyal na nilikhang mga alpabeto ng mundo, pati na rin ang maraming mathematical, musikal, kemikal at iba pang mga simbolo.
Subukan nating gumamit ng talahanayan ng ASCII upang isipin kung ano ang magiging hitsura ng mga salita sa memorya ng computer.
Panloob na representasyon ng mga salita sa memorya ng computer
Minsan nangyayari na ang isang teksto na binubuo ng mga titik ng alpabetong Ruso na natanggap mula sa isa pang computer ay hindi mababasa - ang ilang uri ng "abracadabra" ay makikita sa screen ng monitor. Nangyayari ito dahil gumagamit ang mga computer ng iba't ibang pag-encode ng character para sa wikang Russian.
Ang bawat computer ay may sariling set ng mga character na ipinapatupad nito. Ang set na ito ay naglalaman ng 26 na malaki at maliit na titik, mga numero at mga espesyal na character (tuldok, espasyo, atbp.). Kapag na-convert sa mga integer, ang mga simbolo ay tinatawag na mga code. Ang mga pamantayan ay binuo upang ang mga computer ay magkaroon ng parehong mga hanay ng mga code.
Pamantayan ng ASCII
Ang ASCII (American Standard Code for Information Interchange) ay isang American standard code para sa pagpapalitan ng impormasyon. Ang bawat ASCII character ay may 7 bits, kaya ang maximum na bilang ng mga character ay 128 (Talahanayan 1). Ang mga code 0 hanggang 1F ay mga control character na hindi naka-print. Maraming hindi napi-print na ASCII na mga character ang kailangan upang magpadala ng data. Halimbawa, ang isang mensahe ay maaaring binubuo ng simula ng header na character na SOH, ang header mismo at ang simula ng text character na STX, ang text mismo at ang dulo ng text character na ETX, at ang pagtatapos ng transmission character na EOT. Gayunpaman, ang data sa network ay ipinapadala sa mga packet, na sila mismo ang may pananagutan sa simula at pagtatapos ng paghahatid. Kaya ang mga hindi napi-print na character ay halos hindi na ginagamit.
Talahanayan 1 - talahanayan ng ASCII code
Numero | Koponan | Ibig sabihin | Numero | Koponan | Ibig sabihin |
---|---|---|---|---|---|
0 | NUL | Null pointer | 10 | DLE | Lumabas mula sa sistema ng paghahatid |
1 | SOH | simula ng pamagat | 11 | DC1 | Pamamahala ng device |
2 | STX | Simula ng text | 12 | DC2 | Pamamahala ng device |
3 | ETX | Katapusan ng text | 13 | DC3 | Pamamahala ng device |
4 | EOT | Pagtatapos ng transmission | 14 | DC4 | Pamamahala ng device |
5 | ACK | Kahilingan | 15 | N.A.K. | Hindi kumpirmasyon ng pagtanggap |
6 | BEL | Pagkumpirma ng pagtanggap | 16 | SYN | Simple |
7 | B.S. | Simbolo ng kampana | 17 | ETB | Pagtatapos ng bloke ng paghahatid |
8 | HT | Hakbang pabalik | 18 | MAAARI | Mark |
9 | LF | Pahalang na tabulasyon | 19 | E.M. | Katapusan ng media |
A | VT | Line feed | 1A | SUB | Subscript |
B | FF | Vertical na tab | 1B | ESC | Lumabas |
C | CR | Pagsasalin ng pahina | 1C | FS | File separator |
D | KAYA | Pagbabalik ng karwahe | 1D | G.S. | Tagahiwalay ng grupo |
E | S.I. | Lumipat sa karagdagang rehistro | 1E | R.S. | Record separator |
S.I. | Lumipat sa karaniwang kaso | 1F | US | Separator ng module |
Numero | Simbolo | Numero | Simbolo | Numero | Simbolo | Numero | Simbolo | Numero | Simbolo | Numero | Simbolo |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | espasyo | 30 | 0 | 40 | @ | 50 | P | 60 | . | 70 | p |
21 | ! | 31 | 1 | 41 | A | 51 | Q | 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 | AT | 65 | e | 75 | At |
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 | ako | 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 |
Pamantayan ng Unicode
Ang nakaraang pag-encode ay mainam para sa Ingles, ngunit hindi ito maginhawa para sa iba pang mga wika. Halimbawa, may mga umlaut ang German, at may mga superscript ang French. Ang ilang mga wika ay may ganap na magkakaibang mga alpabeto. Ang unang pagtatangka sa pagpapalawig ng ASCII ay IS646, na nagpahaba sa nakaraang pag-encode ng karagdagang 128 na mga character. Ang mga Latin na titik na may mga stroke at diacritics ay idinagdag, at natanggap ang pangalan - Latin 1. Ang susunod na pagtatangka ay IS 8859 - na naglalaman ng isang pahina ng code. Mayroon ding mga pagtatangka sa mga extension, ngunit hindi ito pangkalahatan. Ginawa ang UNICODE encoding (ay 10646). Ang ideya sa likod ng pag-encode ay magtalaga ng isang pare-parehong 16-bit na halaga sa bawat karakter, na tinatawag na - code pointer. Sa kabuuan mayroong 65536 na mga pointer. Upang makatipid ng espasyo, ginamit namin ang Latin-1 para sa mga code 0 -255, na madaling baguhin ang ASII sa UNICODE. Nalutas ng pamantayang ito ang maraming problema, ngunit hindi lahat. Dahil sa pagdating ng mga bagong salita, halimbawa, para sa wikang Hapon, kailangang dagdagan ang bilang ng mga termino ng humigit-kumulang 20 libo.
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 | 0A | espesyalista. LF | 138 | 8A | Љ | |
011 | 0B | espesyalista. VT | 139 | 8B | ‹ ‹ | |
012 | 0C | espesyalista. FF | 140 | 8C | Њ | |
013 | 0D | espesyalista. CR | 141 | 8D | Ќ | |
014 | 0E | espesyalista. KAYA | 142 | 8E | Ћ | |
015 | 0F | espesyalista. 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 | 1A | espesyalista. SUB | 154 | 9A | љ | |
027 | 1B | espesyalista. ESC | 155 | 9B | › | |
028 | 1C | espesyalista. FS | 156 | 9C | њ | |
029 | 1D | espesyalista. G.S. | 157 | 9D | ќ | |
030 | 1E | espesyalista. R.S. | 158 | 9E | ћ | |
031 | 1F | espesyalista. 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 | A8 | Yo | |
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 | B8 | e | |
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 | 4A | J | 202 | C.A. | SA | |
075 | 4B | K | 203 | C.B. | L | |
076 | 4C | L | 204 | CC | M | |
077 | 4D | M | 205 | CD | N | |
078 | 4E | N | 206 | C.E. | TUNGKOL SA | |
079 | 4F | O | 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 | 5A | Z | 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 | 6A | j | 234 | E.A. | Upang | |
107 | 6B | k | 235 | E.B. | l | |
108 | 6C | l | 236 | E.C. | m | |
109 | 6D | m | 237 | ED | n | |
110 | 6E | n | 238 | E.E. | O | |
111 | 6F | o | 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 | 7A | z | 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 | 7F | Espesyalista. 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 ASCII table control character ay hindi na nagdadala ng load na ito at magagamit para sa iba pang layunin.
Code | Paglalarawan |
---|---|
NUL, 00 | Null, walang laman |
SOH, 01 | Simula Ng Heading |
STX, 02 | Simula ng TeXt, ang simula ng text. |
ETX, 03 | Katapusan ng TeXt, pagtatapos ng teksto |
EOT, 04 | Pagtatapos ng Transmisyon |
ENQ, 05 | Magtanong. Pakikumpirma |
ACK, 06 | Pagkilala. Kinukumpirma ko |
BEL, 07 | Bell, tumawag ka |
BS, 08 | Backspace, bumalik sa isang character |
TAB, 09 | Tab, pahalang na tab |
LF, 0A | Line Feed, line feed. Sa ngayon, sa karamihan ng mga programming language ay tinukoy ito bilang \n |
VT, 0B | Vertical Tab, patayong tabulation. |
FF, 0C | Feed ng Form, page feed, bagong page |
CR, 0D | Pagbabalik ng karwahe, pagbabalik ng karwahe. Sa ngayon, sa karamihan ng mga programming language ay tinukoy ito bilang \r |
KAYA,0E | Shift Out, palitan ang kulay ng ink ribbon sa printing device |
SI, 0F | Shift In, ibalik ang kulay ng ink ribbon sa printing device pabalik |
DLE, 10 | Data Link Escape, paglipat ng channel sa paghahatid ng data |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Kontrol ng Device, mga simbolo ng kontrol ng device |
NAK, 15 | Negative Acknowledgement, hindi ko kinukumpirma. |
SYN, 16 | Pag-synchronize. Simbolo ng pag-synchronize |
ETB, 17 | Katapusan ng Text Block, dulo ng text block |
PWEDE, 18 | Kanselahin, pagkansela sa dati nang inilipat |
EM, 19 | Katapusan ng Medium |
SUB, 1A | Kapalit, kapalit. |
Inilagay sa lugar ng isang simbolo na ang kahulugan ay nawala o nasira sa panahon ng paghahatid | ESC, 1B |
Escape Control Sequence | FS, 1C |
File Separator, file separator | GS, 1D |
Group Separator | RS, 1E |
Record Separator, record separator | US, 1F |
Unit Separator | DEL, 7F |
Tanggalin, burahin ang huling character.
Kumusta, mahal na mga mambabasa ng 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. ASCII Ngunit gayon pa man, ang panimulang punto para sa pagbuo ng mga modernong pag-encode ng teksto ay dapat ituring na sikat
(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 mga character ng serbisyo tulad ng mga bracket, hash mark, asterisk, atbp. Sa katunayan, makikita mo sila mismo:
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 pagkatapos ng pangunahing bersyon ng Asuka isang buong serye ng 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, tulad ng alam mo, ang isang computer ay gumagana lamang sa mga numero sa binary system, katulad ng mga zero at isa ("Boolean algebra", kung sinuman ang kumuha nito sa isang institute 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 naturang konstruksiyon ay maaari lamang maging 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). Ang kabuuan ay 233 sa decimal notation. Tulad ng nakikita mo, ang lahat ay napaka-simple.
Ngunit kung titingnan mong mabuti ang talahanayan na may mga character na ASCII, makikita mo na kinakatawan ang mga ito sa hexadecimal encoding. Halimbawa, ang "asterisk" ay tumutugma sa hexadecimal number 2A sa Aski. Malamang alam mo na sa sistema ng numerong hexadecimal, bilang karagdagan sa mga numerong Arabe, ginagamit din ang mga letrang Latin mula A (nangangahulugang sampu) hanggang F (nangangahulugang labinlimang).
Kung gayon, para sa pag-convert ng binary number sa hexadecimal gumamit ng sumusunod na simple at malinaw na paraan. Ang bawat byte ng impormasyon ay nahahati sa dalawang bahagi ng apat na bit, tulad ng ipinapakita sa screenshot sa itaas. yun. Sa bawat kalahating byte, labing-anim na halaga lamang (dalawa hanggang ika-apat na kapangyarihan) ang maaaring ma-encode sa binary, na madaling maipakita 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 sa 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 kinakailangang font file, na konektado upang ipakita ito tekstong dokumento. 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. ang itaas na bahagi nito ay ganap na nag-tutugma sa pangunahing bersyon ng Aska (128 Latin na mga character, numero at iba pang crap), na ipinakita sa screenshot sa itaas lamang, ngunit ang ibabang bahagi ng talahanayan na may CP866 encoding ay may hitsura na ipinahiwatig sa screenshot sa ibaba lamang. at pinahintulutan kang mag-encode ng isa pang 128 na palatandaan (mga titik na Ruso at lahat ng uri ng pseudographics):
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 ito 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 pseudographic na simbolo dito ay kinuha ng mga nawawalang simbolo ng Russian typography (maliban sa accent mark), pati na rin ang mga simbolo na ginamit sa Slavic na mga wika malapit sa Russian (Ukrainian, Belarusian, atbp.):
Dahil sa kasaganaan ng mga pag-encode ng wikang Ruso, ang mga tagagawa ng font at mga tagagawa ng software ay patuloy na sumasakit ng ulo, 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 ay lumabas sila kapag nagpapadala at tumatanggap ng mga mensahe sa pamamagitan ng e-mail, na nagsasangkot ng paglikha ng napaka-komplikadong mga talahanayan ng conversion, na, sa katunayan, ay hindi malulutas ang problemang ito sa panimula, at ang mga gumagamit ay madalas na ginagamit para sa pagsusulatan upang maiwasan ang mga kilalang-kilalang gimik kapag gumagamit. Mga Russian encoding tulad ng CP866, KOI8-R o Windows 1251.
Sa katunayan, ang mga basag na lumilitaw sa halip na ang tekstong Ruso ay resulta ng maling paggamit ng pag-encode ng wikang ito, na hindi tumutugma sa kung saan orihinal na naka-encode ang text message.
Sabihin nating kung susubukan mong ipakita ang mga character na naka-encode gamit ang CP866 gamit ang Windows 1251 code table, lalabas ang parehong mga walang kwentang set ng character na ito, na ganap na papalitan ang text 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, at 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 mga hindi nababasang 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 character na ito ng pangkat ng wika sa Southeast Asia ay hindi maaaring ilarawan sa isang byte ng impormasyon na 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 bit 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 na nakatanggap ng apat na beses na pagtaas sa bigat ng mga dokumento ng teksto, at bilang resulta, isang pagtaas sa 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 ang Unicode character set sa "Mga advanced na opsyon", 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 variable na haba ng pag-encode. 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 "Character Table" sa itaas makikita mo na ang iba't ibang font ay sumusuporta sa iba't ibang bilang ng mga character. 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.
Upang mag-edit at lumikha ng mga text file, personal akong gumagamit ng isang napakahusay, sa aking opinyon, . 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 ang isang detalyadong pagsusuri ng kahanga-hangang programang ito sa ibinigay na link.
Sa tuktok na menu ng Notepad++ mayroong isang item na "Mga Pag-encode", kung saan magkakaroon ka ng pagkakataong i-convert ang isang 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 na Windows Notepad upang i-edit ang mga dokumento sa iyong site kung ayaw mong lumitaw ang anumang mga bitak. Itinuturing kong ang nabanggit na Notepad++ editor ang pinakamahusay at pinakasimpleng opsyon, na halos walang mga disbentaha 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. kaugnay ng 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 Windows operating system - kung saan ang pag-encode ay pipiliin sa kaso ng ANSI, na pipiliin sa kaso ng OEM (para sa wikang Ruso ito ay magiging CP866). Kung nag-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 website 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 na isama ang impormasyon tungkol sa pag-encode na ito sa header ng source code ng lahat ng mga pahina ng site upang walang pagkalito sa server o lokal na host.
Sa pangkalahatan, ang lahat ng hypertext markup language maliban sa Html ay gumagamit ng isang espesyal na deklarasyon ng xml, na tumutukoy sa 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, ang xml declaration na ito ay maaaring tanggalin (ang pag-encode ay ituturing na UTF-8 kung walang BOM o UTF-16 kung mayroong BOM).
Sa kaso ng isang dokumento sa wikang Html, ang pag-encode ay ginagamit upang ipahiwatig 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 sumusunod sa bagong pamantayan ng Html 5 na unti-unting ipinakilala, at ganap itong mauunawaan nang tama ng anumang mga browser na kasalukuyang ginagamit.
Sa teorya, mas mainam na maglagay ng elemento ng Meta na nagpapahiwatig ng pag-encode ng dokumento ng Html 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
Ano ang mga URL address, paano naiiba ang ganap at kamag-anak na mga link para sa isang site?
OpenServer - isang modernong lokal na server at isang halimbawa kung paano ito gamitin upang i-install ang WordPress sa isang computer
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