Ang code para sa letrang e ay ascii. Pag-encode ng impormasyon ng teksto

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.
Ang kanilang function ay upang kontrolin ang proseso ng pagpapakita ng text sa screen o pag-print, pagpapatunog ng sound signal, pagmamarka ng text, atbp.

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.
Ang karakter 32 ay isang espasyo, i.e. walang laman na posisyon sa teksto.
Ang lahat ng iba ay makikita sa ilang mga palatandaan.

128 - 255

10000000 - 11111111

Alternatibong bahagi ng talahanayan (Russian).
Ang ikalawang kalahati ng talahanayan ng ASCII code, na tinatawag na pahina ng code (128 code, simula sa 10000000 at nagtatapos sa 11111111), ay maaaring magkaroon ng iba't ibang mga opsyon, ang bawat opsyon ay may sariling numero.
Pangunahing ginagamit ang pahina ng code upang tumanggap ng mga pambansang alpabeto maliban sa Latin. Sa Russian national encodings, ang mga character mula sa Russian alphabet ay inilalagay sa bahaging ito ng table.

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 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 ASCII table control character ay hindi na nagdadala ng load na ito at magagamit para sa iba pang 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, 04Pagtatapos ng Transmisyon
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, page feed, bagong page
CR, 0DPagbabalik ng karwahe, pagbabalik ng karwahe.
Sa ngayon, sa karamihan ng mga programming language ay tinukoy ito 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, 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, 15Negative Acknowledgement, hindi ko kinukumpirma.
SYN, 16Pag-synchronize. Simbolo ng pag-synchronize
ETB, 17Katapusan ng Text Block, dulo ng text block
PWEDE, 18Kanselahin, pagkansela sa dati nang inilipat
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.

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