Tabel de coduri Koi 8. Codificare KOI8-R

- Zampolit (@ComradZampolit) 17 august 2017

Cum funcționează KOI8-R?

KOI8-R este o pagină de cod pe opt biți concepută pentru a codifica litere în alfabete chirilice. Dezvoltatorii au plasat simbolurile alfabetului rus în așa fel încât pozițiile simbolurilor chirilice să corespundă omologilor lor fonetici din alfabetul englez din partea de jos a tabelului. Și dacă eliminăm cel de-al optulea bit din fiecare caracter din textul scris în această codificare, atunci obținem un text similar cu transliterarea în litere latine.

Un astfel de cod de schimb de informații a fost utilizat în anii șaptezeci pe computerele din seria de calculatoare ES, iar de la mijlocul anilor optzeci a început să fie folosit în primele versiuni rusificate. sistem de operare UNIX.

Codificarea a constat în faptul că fiecărui caracter i s-a atribuit un cod unic: de la 00000000 la 11111111. Astfel, o persoană distinge caracterele prin stilul lor și un computer - prin codul lor.

Este utilizată acum codificarea Chernov?

Nu. A fost relevant pentru computerele vechi de opt biți, acum în principal Unicode este utilizat în diferite formate.

Codificare KOI8-R

Codificare ISO 8859-5

ISO 8859-5

Codificare alternativă

„Codificare alternativă”- o pagină de cod bazată pe CP437 în care toate caracterele europene specifice din a doua jumătate sunt înlocuite cu chirilice, lăsând caracterele pseudografice intacte. Prin urmare, nu strică aspectul programelor care folosesc casete de text pentru munca lor și, de asemenea, asigură utilizarea caracterelor chirilice în ele.

Din punct de vedere istoric, au existat multe opțiuni alternative de codificare, dar diferențele se referă doar la regiunea 0xF0 - 0xFF (240-255). Standardul final a fost codarea IBM CP866, suport pentru care a fost adăugat în versiunea 6.22 MS-DOS (înainte, au fost utilizate tot felul de crackere „de casă”. O codificare alternativă este încă în viață și extrem de populară în DOS și OS / 2 În plus, această codificare este scrisă în nume Sistemul de fișiere GRAS. CP866 este încă utilizat în consola sistemelor rusești Familia Windows NT.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. A 410 B 411 B 412 D 413 D 414 E 415 F 416 Z 417 Și 418 J 419 K 41A L 41B M 41C H 41D Aproximativ 41E P 41F
9. R 420 S 421 T 422 U 423 Formularul 424 X 425 Ts 426 H 427 W 428 U 429 B 42A S 42B B 42C E 42D Yu 42E Sunt 42F
A. un 430 b 431 la 432 g 433 d 434 e 435 f 436 s 437 și 438 a 439 la 43A l 43B m 43C n 43D aproximativ 43E n 43F
B. ░ 2591 ▒ 2592 ▓ 2593 │ 2502 ┤ 2524 ╡ 2561 ╢ 2562 ╖ 2556 ╕ 2555 ╣ 2563 ║ 2551 ╗ 2557 ╝ 255D ╜ 255C ╛ 255B ┐ 2510
C. └ 2514 ┴ 2534 ┬ 252C ├ 251C ─ 2500 ┼ 253C ╞ 255E ╟ 255F ╚ 255A ╔ 2554 ╩ 2569 ╦ 2566 ╠ 2560 ═ 2550 ╬ 256C ╧ 2567
D. ╨ 2568 ╤ 2564 ╥ 2565 ╙ 2559 ╘ 2558 ╒ 2552 ╓ 2553 ╫ 256B ╪ 256A ┘ 2518 ┌ 250C █ 2588 ▄ 2584 ▌ 258C ▐ 2590 ▀ 2580
E. p 440 din 441 t 442 la 443 f 444 x 445 c 446 h 447 w 448 u 449 ъ 44A s 44B b 44C e 44D yu 44E i 44F
F. Ё 401 ё 451 Є 404 є 454 Ї 407 ї 457 Ў 40E ў 45E ° B0 ∙ 2219 B7 √ 221A № 2116 ¤ A4 ■ 25A0 A0

SO 8859-5- Codificare pe 8 biți din seria ISO-8859 pentru scrierea alfabetului chirilic. Aproape niciodată folosit în Rusia. În general, ISO 8859-5 nu este o codificare foarte convenabilă, întrucât îi lipsesc multe caractere necesare, cum ar fi liniuțe (-), ghilimele (""), grade (°) etc.



.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8 D 8E 8F
9. 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A. A0 Ё 401 Ђ 402 Ѓ 403 Є 404 Ѕ 405 I 406 Ї 407 Ј 408 Љ 409 Њ 40A Ћ 40B Ќ 40C ANUNȚ Ў 40E Џ 40F
B. A 410 B 411 B 412 D 413 D 414 E 415 F 416 Z 417 Și 418 J 419 K 41A L 41B M 41C H 41D Aproximativ 41E P 41F
C. R 420 S 421 T 422 U 423 Formularul 424 X 425 Ts 426 H 427 W 428 U 429 B 42A S 42B B 42C E 42D Yu 42E Sunt 42F
D. un 430 b 431 la 432 g 433 d 434 e 435 f 436 s 437 și 438 a 439 la 43A l 43B m 43C n 43D aproximativ 43E n 43F
E. p 440 din 441 t 442 la 443 f 444 x 445 c 446 h 447 w 448 u 449 ъ 44A s 44B b 44C e 44D yu 44E i 44F
F. № 2116 ё 451 ђ 452 ѓ 453 є 454 * 455 i 456 ї 457 ј 458 љ 459 њ 45A ћ 45B ќ 45C § A7 ў 45E џ 45F

KOI-8 (cod de schimb de informații, 8 biți), KOI8- un standard de opt biți pentru codarea caracterelor în informatică. Conceput pentru a codifica litere în alfabete chirilice. Există, de asemenea, o versiune de șapte biți a codificării - KOI-7. KOI-7 și KOI-8 sunt descrise în GOST 19768-74 (acum invalid).

Dezvoltatorii KOI-8 au plasat caracterele alfabetului rus în partea de sus a tabelului ASCII extins în așa fel încât pozițiile caracterelor chirilice să corespundă omologilor lor fonetici din alfabetul englez din partea de jos a tabelului. Aceasta înseamnă că, dacă cel de-al optulea bit al fiecărui caracter este eliminat din textul scris în KOI-8, atunci se obține un text „lizibil”, deși este scris cu caractere latine. De exemplu, cuvintele „Text rusesc” ar deveni „rUSSKIJ tEKST”. Ca efect secundar, caracterele chirilice nu erau în ordine alfabetică.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ─ 2500 │ 2502 ┌ 250C ┐ 2510 └ 2514 ┘ 2518 ├ 251C ┤ 2524 ┬ 252C ┴ 2534 ┼ 253C ▀ 2580 ▄ 2584 █ 2588 ▌ 258C ▐ 2590
9. ░ 2591 ▒ 2592 ▓ 2593 ⌠ 2320 ■ 25A0 ∙ 2219 √ 221A ≈ 2248 ≤ 2264 ≥ 2265 A0 ⌡ 2321 ° B0 ² B2 B7 ÷ F7
A. ═ 2550 ║ 2551 ╒ 2552 ё 451 ╓ 2553 ╔ 2554 ╕ 2555 ╖ 2556 ╗ 2557 ╘ 2558 ╙ 2559 ╚ 255A ╛ 255B ╜ 255C ╝ 255D ╞ 255E
B. ╟ 255F ╠ 2560 ╡ 2561 Ё 401 ╢ 2562 ╣ 2563 ╤ 2564 ╥ 2565 ╦ 2566 ╧ 2567 ╨ 2568 ╩ 2569 ╪ 256A ╫ 256B ╬ 256C © A9
C. yu 44E un 430 b 431 c 446 d 434 e 435 f 444 g 433 x 445 și 438 a 439 la 43A l 43B m 43C n 43D aproximativ 43E
D. n 43F i 44F p 440 din 441 t 442 la 443 f 436 la 432 b 44C s 44B s 437 w 448 e 44D u 449 h 447 ъ 44A
E. Yu 42E A 410 B 411 Ts 426 D 414 E 415 Formularul 424 D 413 X 425 Și 418 J 419 K 41A L 41B M 41C H 41D Aproximativ 41E
F. P 41F Sunt 42F R 420 S 421 T 422 U 423 F 416 B 412 B 42C S 42B Z 417 W 428 E 42D U 429 H 427 B 42A

Codificare KOI8-U (ucraineană)

KOI-8 a devenit prima codificare rusă standardizată pe internet.

IETF a aprobat mai multe RFC-uri pentru opțiuni de codare KOI-8:

  • RFC 1489 - KOI8-R (litere ale alfabetului rus);
  • RFC 2319 - KOI8-U (litere ucrainene);
  • RFC 1345 - ISO-IR-111 (Definiția intervalului de bază nevalid).

În tabelele de mai jos, numerele de sub litere reprezintă codul hexazecimal al literei în Unicode.

Codificare KOI8-R (rusă)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.

2500

2502

250C

2510

2514

2518

251C

2524

252C

2534

253C

2580

2584

2588

258C

2590

9.

2591

2592

2593

2320

25A0

2219

221A

2248

2264

2265

A0

2321
°
B0
²
B2
·
B7
÷
F7

A.

2550

2551

2552
e
451

2553

2554

2555

2556

2557

2558

2559

255A

255B

255C

255D

255E

B.

255F

2560

2561
Eu
401

2562

2563

2564

2565

2566

2567

2568

2569

256A

256B

256C
©
A9

C.
Yu
44E
dar
430
b
431
c
446
d
434
e
435
f
444
r
433
X
445
și
438
a
439
la
43A
l
43B
m
43C
n
43D
despre
43E

D.
P
43F
Eu
44F
R
440
din
441
t
442
la
443
f
436
în
432
b
44C
s
44B
s
437
w
448
nu
44D
tu
449
h
447
b
44A

E.
YU
42E
DAR
410
B
411
C
426
D
414
E
415
F
424
D
413
X
425
ȘI
418
Th
419
LA
41A
L
41B
M
41C
H
41D
DESPRE
41E

F.
P
41F
Eu
42F
R
420
DIN
421
T
422
Avea
423
F
416
ÎN
412
B
42C
S
42B
Z
417
SH
428
E
42D
U
429
H
427
B
42A

Alte optiuni

Sunt afișate doar rândurile tabelelor care nu se potrivesc, deoarece toate celelalte se potrivesc.

Codificare KOI8-U (rus-ucrainean)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

A.

2550

2551

2552
e
451
є
454

2554
і
456
ї
457

2557

2558

2559

255A

255B
ґ
491

255D

255E

B.

255F

2560

2561
Eu
401
Є
404

2563
І
406
Ї
407

2566

2567

2568

2569

256A
Ґ
490

256C
©
A9

Codificare KOI8-RU (rusă-bielorusă-ucraineană)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

A.

2550

2551

2552
e
451
є
454

2554
і
456
ї
457

2557

2558

2559

255A

255B
ґ
491
ў
45E

255E

B.

255F

2560

2561
Eu
401
Є
404

2563
І
406
Ї
407

2566

2567

2568

2569

256A
Ґ
490
Ў
40E
©
A9

Codificare KOI8-C (Asia Centrală)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ғ
493
җ
497
қ
49B
ҝ
49D
ң
4A3
ү
4AF
ұ
4B1
ҳ
4B3
ҷ
4B7
ҹ
4B9
һ
4BB

2580
ә
4D9
ӣ
4E3
ө
4E9
ӯ
4EF
9. Ғ
492
Җ
496
Қ
49A
Ҝ
49C
Ң
4A2
Ү
4AE
Ұ
4B0
Ҳ
4B2
Ҷ
4B6
Ҹ
4B8
Һ
4BA

2321
Ә
4D8
Ӣ
4E2
Ө
4E8
Ӯ
4EE
A.
A0
ђ
452
ѓ
453
e
451
є
454
ѕ
455
і
456
ї
457
ј
458
љ
459
њ
45A
ћ
45B
ќ
45C
ґ
491
ў
45E
џ
45F
B.
2116
Ђ
402
Ѓ
403
Eu
401
Є
404
Ѕ
405
І
406
Ї
407
Ј
408
Љ
409
Њ
40A
Ћ
40B
Ќ
40C
Ґ
490
Ў
40E
Џ
40F

Codificare KOI8-T (tadjik)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. қ
49B
ғ
493

201A
Ғ
492

201E

2026

2020

2021

2030
ҳ
4B3

2039
Ҳ
4B2
ҷ
4B7
Ҷ
4B6
9. Қ
49A

2018

2019

201C

201D

2022

2013
-
2014

2122

203A
A. ӯ
4EF
Ӯ
4EE
e
451
¤
A4
ӣ
4E3
¦
A6
§
A7
«
AB
¬
AC
­
ANUNȚ
®
AE
B. °
B0
±
B1
²
B2
Eu
401
Ӣ
4E2

B6
·
B7

2116
»
BB
©
A9

Codificare KOI8-O, KOI8-S (slavă, ortografie veche)

0407
.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.
Ђ
0402
Ѓ
0403
¸
00B8
ѓ
0453

201E

2026

2020
§
00A7

20AC
¨
00A8
Љ
0409

2039
Њ
040A
Ќ
040C
Ћ
040B
Џ
040F

9.
ђ
0452

2018

2019

201C

201D

2022

2013

2014
£
00A3
·
00B7
љ
0459

203A
њ
045A
ќ
045C
ћ
045B
џ
045F

A.

00A0
ѵ
0475
ѣ
0463
e
0451
є
0454
ѕ
0455
і
0456
ї
0457
ј
0458
®
00AE

2122
«
00AB
ѳ
0473
ґ
0491
ў
045E
´
00B4

B.
°
00B0
Ѵ
0474
Ѣ
0462
Eu
0401
Є
0404
Ѕ
0405
І
0406
Ї
0407
Ј
0408

2116
¢
00A2
»
00BB
Ѳ
0472
Ґ
0490
Ў
040E
©
00A9

Codificare ISO-IR-111, KOI8-E

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

A.

00A0
ђ
0452
ѓ
0453
e
0451
є
0454
ѕ
0455
і
0456
ї
0457
ј
0458
љ
0459
њ
045A
ћ
045B
ќ
045C
­
00AD
ў
045E
џ
045F

B.

2116
Ђ
0402
Ѓ
0403
Eu
0401
Є
0404
Ѕ
0405
І
0406
Ї
0407
Ј
0408
Љ
0409
Њ
040A
Ћ
040B
Ќ
040C
¤
00A4
Ў
040E
Џ
040F

Codificare KOI8-Unified, KOI8-F

Codificarea KOI8-Unified (KOI8-F) este oferită de Fingertip Software.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.

2500

2502

250C

2510

2514

2518

251C

2524

252C

2534

253C

2580

2584

2588

258C

2590

9.

2591

2018

2019

201C

201D

2022

2013

2014
©
00A9

2122

00A0
»
00BB
®
00AE
«
00AB
·
00B7
¤
00A4

A.

00A0
ђ
0452
ѓ
0453
e
0451
є
0454
ѕ
0455
і
0456
ї
0457
ј
0458
љ
0459
њ
045A
ћ
045B
ќ
045C
ґ
0491
ў
045E
џ
045F

B.

2116
Ђ
0402
Ѓ
0403
Eu
0401
Є
0404
Ѕ
0405
І
0406
Ї
0407
Ј
0408
Љ
0409
Њ
040A
Ћ
040B
Ќ
040C
Ґ
0490
Ў
040E
Џ
040F

Variante necirilice ale KOI-8

În unele țări CMEA, s-au făcut modificări la KOI-8 pentru variantele naționale ale alfabetului latin. Ideea de bază era aceeași - atunci când tăiați cel de-al optulea bit, textul ar trebui să rămână mai mult sau mai puțin clar.

- Ei bine, începe! - a spus Dolokhov.
- Ei bine, a spus Pierre, zâmbind încă. - Se înspăimânta. Era evident că afacerea, care a început atât de ușor, nu mai putea fi împiedicată de nimic, că se desfășura de la sine, deja independent de voința oamenilor, și trebuia realizată. Denisov a fost primul care a făcut un pas înainte către barieră și a proclamat:
- Deoarece n "rivalii au renunțat la n" de către ei "enia, nu v-ar plăcea să începeți: luați pistoalele și cu cuvântul t" și începeți să convergeți.
- G ... "az! Two! T" și! ... - a strigat supărat Denisov și s-a dat deoparte. Amândoi au mers de-a lungul cărărilor călcate tot mai aproape, recunoscându-se reciproc în ceață. Adversarii aveau dreptul, convergând spre barieră, să tragă ori de câte ori cineva dorea. Dolokhov a mers încet, fără să ridice pistolul, privind cu ochii săi strălucitori, strălucitori și albaștri în fața adversarului său. Gura lui, ca întotdeauna, purta aparența unui zâmbet.
- Deci, când vreau - pot să trag! - a spus Pierre, la cuvântul celor trei pași rapizi, a mers înainte, îndepărtându-se de calea călcată și mergând pe zăpada solidă. Pierre a ținut pistolul, întinzându-se înainte mana dreapta, se pare că se teme să nu se sinucidă cu acest pistol. El și-a pus cu sârguință mâna stângă înapoi, pentru că voia să-și susțină mâna dreaptă cu ea și știa că acest lucru era imposibil. După ce a parcurs vreo șase pași și a scăpat de pe cărare în zăpadă, Pierre și-a privit din nou picioarele, a aruncat din nou o privire rapidă spre Dolokhov și, trăgându-și degetul, după cum fusese învățat, a tras. Neașteptându-se la un sunet atât de puternic, Pierre tresări din lovitură, apoi zâmbi după propria impresie și se opri. Fumul, deosebit de gros de ceață, l-a împiedicat să vadă în prima clipă; dar nu se mai aștepta nici o altă împușcare. Doar pașii grăbiți ai lui Dolokhov se auzeau, iar silueta lui apărea din spatele fumului. Cu o mână se ținea de partea stângă, cu cealaltă apucă pistolul coborât. Fața lui era palidă. Rostov a alergat și i-a spus ceva.
- Nu ... e ... t, - a spus Dolokhov printre dinții încleștați, - nu, nu s-a terminat, - și după ce a mai căzut câțiva pași până la sabie, a căzut pe zăpada de lângă el. . Mâna stângă îi era acoperită de sânge, o șterse de haina și se sprijini de ea. Fața lui era palidă, încruntată și tremurătoare.
- Vă rog ... - a început Dolokhov, dar nu a putut pronunța imediat ... - vă rog, a terminat el cu un efort. Pierre, abia reținând suspinele, a alergat la Dolokhov și a fost pe punctul de a traversa spațiul care separă barierele, când Dolokhov a strigat: - la barieră! - și Pierre, dându-și seama ce se întâmpla, se opri la sabia lui. Doar 10 pași i-au separat. Dolokhov a lăsat capul pe zăpadă, a mușcat cu nerăbdare zăpada, a ridicat din nou capul, s-a îndreptat, și-a ridicat picioarele și s-a așezat, în căutarea unui centru de greutate solid. A înghițit zăpadă receși a supt-o; buzele îi tremurau, dar tot zâmbind; ochii sclipeau de efortul și răutatea ultimelor forțe adunate. Ridică pistolul și începu să țintească.
„În lateral, acoperă-te cu un pistol”, a spus Nesvitsky.
- Ca „oytes!”, Incapabil să o suporte, a strigat chiar și Denisov adversarului său.
Pierre, cu un zâmbet blând de regret și remușcare, întinzându-și neputincios picioarele și brațele, stătea drept cu pieptul larg în fața lui Dolokhov și îl privea cu tristețe. Denisov, Rostov și Nesvitsky au închis ochii. În același timp, au auzit o lovitură și un strigăt furios de la Dolokhov.
- Trecut! - a strigat Dolokhov și s-a întins neputincios pe zăpadă, cu fața în jos. Pierre strânse din cap și, întorcându-se înapoi, a intrat în pădure, mergând în întregime prin zăpadă și rostind cu voce tare cuvinte de neînțeles:
- Prost ... prost! Moartea ... minciuni ... - a repetat, tresărind. Nesvitsky l-a oprit și l-a dus acasă.
Rostov și Denisov l-au luat pe rănitul Dolokhov.
Dolokhov, tăcut, cu ochii închiși, zăcea în sanie și nu răspunse niciun cuvânt la întrebările care i se puneau; dar, după ce a condus în Moscova, s-a trezit brusc și, cu greu ridicând capul, a luat mâna lui Rostov, care stătea lângă el. Rostov a fost surprins de expresia complet schimbată și neașteptat de entuziastă de tandră de pe chipul lui Dolokhov.
- Bine? Cum te simti? L-a întrebat Rostov.
- Rău! dar nu asta este ideea. Prietenul meu, - a spus Dolokhov cu o voce frântă, - unde suntem? Suntem la Moscova, știu. Nu sunt nimic, dar am ucis-o, am ucis-o ... Ea nu va suporta. Ea nu va suporta ...
- Care? L-a întrebat Rostov.
- Mama mea. Mama, îngerul meu, îngerul meu adorat, mama - și Dolokhov au plâns, strângând mâna lui Rostov. Când s-a liniștit oarecum, i-a explicat lui Rostov că locuiește cu mama lui, că, dacă mama lui îl va vedea murind, nu o va suporta. El l-a rugat pe Rostov să meargă la ea și să o pregătească.
Rostov a continuat să îndeplinească misiunea și, spre marea sa surpriză, a aflat că Dolokhov, acest luptător, Dolokhov, locuia la Moscova cu o mamă bătrână și o soră cocoșată și era cel mai tandru fiu și frate.

Pierre și-a văzut rareori soția față în față în ultima vreme. Atât la Sankt Petersburg, cât și la Moscova, casa lor era în permanență plină de oaspeți. A doua zi după duel, așa cum a făcut-o deseori, nu a mers în dormitorul său, ci a rămas în biroul său imens, al tatălui, chiar în cel în care a murit contele Bezukhiy.
S-a întins pe canapea și a vrut să adoarmă pentru a uita tot ce i s-a întâmplat, dar nu a putut să o facă. O astfel de furtună de sentimente, gânduri, amintiri i-a apărut brusc în suflet, încât nu numai că nu putea să doarmă, dar nu putea să stea nemișcat și a trebuit să sară de pe canapea și să meargă vioi prin cameră. Apoi s-a imaginat la prima dată după căsătorie, cu umerii deschiși și o privire obosită, pasională, și imediat lângă ea a apărut chipul frumos, arogant și ferm batjocoritor al lui Dolokhov, așa cum era la cină, și același chip al lui Dolokhov. , palid, tremurând și suferind ca atunci când s-a întors și a căzut în zăpadă.
"Ce-a fost asta? S-a întrebat. „L-am ucis pe iubitul meu, da, l-am ucis pe iubitul soției mele. Da, a fost. De la ce? Cum am ajuns la acest punct? „Pentru că te-ai căsătorit cu ea”, a răspuns o voce interioară.
„Dar de ce sunt eu vinovat? El a intrebat. „Că te-ai căsătorit fără să o iubești, că te-ai înșelat pe tine și pe ea” și și-a imaginat în mod viu acel minut după cină la prințul Vasily, când a spus aceste cuvinte care nu l-au părăsit niciodată: „Je vous aime”. [Te iubesc.] Toate astea! M-am simțit și atunci, se gândi el, am simțit atunci că nu am avut dreptul la asta. Și așa s-a întâmplat. " Își aminti luna de miere și se înroși la amintire. Deosebit de viu, jignitor și rușinos pentru el a fost amintirea că într-o zi, la scurt timp după căsătorie, la ora 12 după-amiaza, în halat de mătase, a venit din dormitor la birou și în birou a găsit directorul șef, care se înclină cu respect, se uită la chipul lui Pierre, pe halat și zâmbi ușor, ca și când ar fi exprimat cu acest zâmbet simpatie respectuoasă pentru fericirea directorului său.
„Și de câte ori am fost mândru de ea, mândru de frumusețea ei impunătoare, de tactul ei secular”, se gândea el; era mândru de casa lui, în care ea găzduia întregul Petersburg, era mândru de inaccesibilitatea și frumusețea ei. Deci de asta eram mândru?! Am crezut atunci că nu o înțeleg. Cât de des, meditând la caracterul ei, mi-am spus că sunt de vină, că nu o înțeleg, că nu înțeleg această calmă veșnică, satisfacție și absența oricărui atașament și dorință, iar întregul indiciu era în acel cuvânt teribil că era o femeie depravată: mi-a spus acest cuvânt cumplit și totul a devenit clar!
„Anatole s-a dus la ea să împrumute bani și i-a sărutat umerii goi. Nu i-a dat bani, dar l-a lăsat să o sărute. Tatăl ei, în glumă, i-a stârnit gelozia; A spus cu un zâmbet calm că nu este atât de proastă încât să fie geloasă: las-o să facă ce vrea, a spus despre mine. Am întrebat-o o dată dacă simte semne de sarcină. A râs disprețuitor și a spus că nu este o prostie să vrea să aibă copii și că nu va avea copii de la mine. "
Apoi și-a amintit grosolanul, claritatea gândurilor ei și vulgaritatea expresiilor caracteristice ei, în ciuda educației ei în cel mai înalt cerc aristocratic. „Nu sunt un tip de prost ... du-te și încearcă-l singur ... allez vous promener”, a spus ea. De multe ori, uitându-se la succesul ei în ochii bărbaților și femeilor bătrâne și tinere, Pierre nu putea înțelege de ce nu o iubește. Da, nu am iubit-o niciodată, și-a spus Pierre; Știam că este o femeie depravată, și-a repetat, dar nu îndrăznea să recunoască.

Buna dragi cititori ai site-ului blogului. Astăzi vom vorbi cu dvs. despre de unde provin krakozyabrs pe site și în programe, ce codificări de text există și care ar trebui utilizate. Luați în considerare în detaliu istoria dezvoltării lor, începând de la ASCII de bază, precum și versiunile sale extinse CP866, KOI8-R, Windows 1251 și terminând cu codificări moderne ale consorțiului Unicode UTF 16 și 8.

Pentru unii, aceste informații pot părea de prisos, dar ați ști câte întrebări primesc cu privire la krakozyabrov (un set de caractere care nu poate fi citit). Acum voi avea ocazia să-i trimit pe toți la textul acestui articol și să-mi găsesc independent gambele. Ei bine, pregătește-te să absoarbe informațiile și încearcă să urmărești povestea.

ASCII - codificare text de bază pentru alfabetul latin

Dezvoltarea codificărilor de text a avut loc simultan cu formarea industriei IT și în acest timp au reușit să sufere destul de multe schimbări. Din punct de vedere istoric, totul a început cu EBCDIC, care nu era mai degrabă eufonic în pronunția rusă, ceea ce a făcut posibilă codificarea literelor alfabetului latin, cifrelor arabe și semnelor de punctuație cu caractere de control.

Dar totuși, punctul de plecare pentru dezvoltarea codificărilor de text moderne ar trebui considerat celebru ASCII(Codul standard american pentru schimbul de informații, care în rusă se pronunță de obicei ca „aski”). Descrie primele 128 de caractere folosite cel mai frecvent de utilizatorii vorbitori de limbă engleză - cifre arabe și semne de punctuație.

Chiar și aceste 128 de caractere descrise în ASCII au inclus unele caractere de serviciu precum paranteze, linii hash, asteriscuri etc. De fapt, tu însuți le poți vedea:

Aceste 128 de caractere din versiunea ASCII originală au devenit standardul și, în orice altă codificare, le veți întâlni cu siguranță și vor rămâne în această ordine.

Faptul este că, cu ajutorul unui octet de informație, este posibil să codificați nu 128, ci până la 256 de valori diferite (două la puterea de opt este egal cu 256), prin urmare, după versiunea de bază Asuka a apărut o serie întreagă codificări ASCII extinse, în care, pe lângă 128 de caractere de bază, a fost posibilă codificarea simbolurilor codificării naționale (de exemplu, rusă).

Aici, poate, merită să spunem ceva mai mult despre sistemele numerice care sunt utilizate în descriere. În primul rând, după cum știți cu toții, computerul funcționează numai cu numere din sistemul binar, și anume cu zerouri și unele („algebră booleană”, dacă cineva a mers la facultate sau la școală). , fiecare dintre ele având o putere de 2, începând de la zero și până la două în a șaptea:

Nu este dificil de înțeles că pot exista doar 256 de combinații posibile de zerouri și unele într-o astfel de construcție. Este destul de simplu să convertiți un număr de la binar la zecimal. Trebuie doar să adăugați toate puterile a două peste care există.

În exemplul nostru, acesta este 1 (2 la puterea zero) plus 8 (două la puterea lui 3), plus 32 (două la puterea a cincea), plus 64 (la a șasea), plus 128 (la a șaptea) ). Total primește 233 in sistem zecimal socoteală. După cum puteți vedea, totul este foarte simplu.

Dar dacă priviți cu atenție tabelul cu caractere ASCII, veți vedea că acestea sunt reprezentate în codificare hexazecimală. De exemplu, „asterisc” se potrivește în Asuka număr hexazecimal 2A. Probabil că știi asta în sistem hexazecimal Pe lângă cifrele arabe, numerele sunt folosite și în literele latine de la A (înseamnă zece) până la F (înseamnă cincisprezece).

Ei bine, pentru traducere număr binar la hexazecimal recurgeți la următoarea metodă simplă și intuitivă. Fiecare octet de informație este împărțit în două bucăți de patru biți, așa cum se arată în captura de ecran de mai sus. Asa de în fiecare jumătate de octet, doar șaisprezece valori (două până la a patra putere) pot fi codificate în binar, care poate fi ușor reprezentat ca un număr hexazecimal.

Mai mult, în jumătatea stângă a octetului, va fi necesar să numărați din nou gradele începând de la zero și nu așa cum se arată în captura de ecran. Ca rezultat, prin câteva calcule simple, obținem că numărul E9 este codat în captura de ecran. Sper că cursul raționamentului meu și soluția la acest puzzle s-au dovedit a fi clare pentru dvs. Ei bine, acum să continuăm, de fapt, să vorbim despre codificarea textului.

Versiuni extinse ale codificărilor Asuka - CP866 și KOI8-R cu pseudografie

Deci, am început să vorbim despre ASCII, care a fost, ca să spunem așa, un punct de plecare pentru dezvoltarea tuturor codificărilor moderne (Windows 1251, Unicode, UTF 8).

Inițial, conținea doar 128 de caractere din alfabetul latin, cifre arabe și altceva acolo, dar în versiunea extinsă a devenit posibil să se utilizeze toate cele 256 de valori care pot fi codate într-un octet de informații. Acestea. a devenit posibil să adăugați simboluri ale literelor limbii dvs. la Aski.

Aici va fi necesar să devii din nou pentru a clarifica - de ce avem nevoie deloc de codificări textele și de ce este atât de important. Simbolurile de pe ecranul computerului sunt formate pe baza a două lucruri - seturi de forme vectoriale (reprezentări) de tot felul de caractere (sunt în fișiere co) și un cod care vă permite să scoateți din acest set de forme vectoriale (font fișier) exact simbolul care trebuie inserat în locul potrivit.

Este clar că fonturile în sine sunt responsabile pentru formele vectoriale, dar sistemul de operare și programele utilizate în acesta sunt responsabile pentru codificare. Acestea. orice text de pe computerul dvs. va fi un set de octeți, fiecare dintre aceștia codificând un singur caracter al acestui text.

Programul care afișează acest text pe ecran (editor de text, browser etc.), atunci când analizează codul, citește codificarea următorului caracter și caută forma vectorială corespunzătoare în fișierul dorit fontul care este conectat pentru a afișa acest document text. Totul este simplu și banal.

Aceasta înseamnă că, pentru a codifica orice caracter de care avem nevoie (de exemplu, din alfabetul național), trebuie îndeplinite două condiții - forma vectorială a acestui caracter trebuie să fie în fontul utilizat și acest caracter ar putea fi codificat în codificări ASCII extinse în un octet. Prin urmare, există o grămadă de astfel de opțiuni. Numai pentru codificarea caracterelor limbii rusești, există mai multe varietăți de Asuka extinse.

De exemplu, a apărut inițial CP866, în care a fost posibil să se utilizeze caracterele alfabetului rus și a fost o versiune extinsă a ASCII.

Acestea. partea superioară a acestuia a coincis complet cu versiunea de bază a lui Asuka (128 caractere latine, numere și orice altă porcărie), care este afișată în captura de ecran de mai sus, dar deja partea inferioară a tabelului cu codificare CP866 avea vizualizarea indicată în captura de ecran chiar dedesubt și permis codificarea altor 128 de semne (litere rusești și tot felul de pseudo-grafice):

Vedeți, în coloana din dreapta, numerele încep cu 8, deoarece numerele de la 0 la 7 se referă la partea ASCII de bază (vezi prima captură de ecran). Asa de litera rusă „M” din CP866 va avea codul 9C (se află la intersecția liniei corespunzătoare cu 9 și a coloanei cu numărul C din sistemul numeric hexazecimal), care poate fi scris într-un octet de informații, și dacă există un font adecvat cu caractere rusești, această literă fără probleme va fi afișată în text.

De unde a venit această sumă? pseudografice în CP866? Ideea aici este că această codificare pentru textul rus a fost dezvoltată înapoi în acei ani furioși, când nu exista o astfel de răspândire a sistemelor de operare grafice ca acum. Și în Dos, și în sisteme de operare similare, pseudo-grafica a făcut posibilă diversificarea cumva a designului textelor și, prin urmare, CP866 și toți ceilalți colegi din categoria versiunilor extinse ale lui Asuka abundă în el.

CP866 a fost distribuit de IBM, dar pe lângă aceasta, au fost dezvoltate o serie de codificări pentru caractere rusești, de exemplu, acest tip (ASCII extins) poate fi atribuit KOI8-R:

Principiul funcționării sale rămâne același cu cel al CP866 descris puțin mai devreme - fiecare caracter al textului este codificat cu un singur octet. Captura de ecran arată a doua jumătate a tabelului KOI8-R, de atunci prima jumătate este pe deplin compatibilă cu Asuka de bază, care este prezentat în prima captură de ecran din acest articol.

Printre caracteristicile codării KOI8-R, se poate observa că literele rusești din tabelul său nu sunt în ordine alfabetică, așa cum, de exemplu, au făcut-o în CP866.

Dacă vă uitați la prima captură de ecran (a părții de bază, care este inclusă în toate codificările extinse), veți observa că în KOI8-R literele rusești sunt situate în aceleași celule ale tabelului ca literele consoanei alfabetului latin. cu ei din prima parte a tabelului. Acest lucru a fost făcut pentru comoditatea comutării de la caracterele rusești la latine, aruncând doar un bit (două la puterea a șaptea sau 128).

Windows 1251 - versiunea modernă a ASCII și de ce a apărut krakozyabry

Dezvoltarea ulterioară a codificărilor de text s-a datorat faptului că sistemele de operare grafice câștigă popularitate și nevoia de a utiliza pseudo-grafice în ele a dispărut în timp. Ca rezultat, a apărut un întreg grup, care, în esența lor, erau încă versiuni extinse ale lui Asuka (un caracter al textului este codificat cu un singur octet de informații), dar deja fără utilizarea de caractere pseudo-grafice.

Au aparținut așa-numitelor codificări ANSI, care au fost dezvoltate de Institutul American de Standardizare. În limbajul obișnuit, numele alfabetului chirilic a fost folosit și pentru versiunea cu suport pentru limba rusă. Un exemplu în acest sens poate servi.

A diferit în mod favorabil de CP866 și KOI8-R utilizate anterior prin faptul că locul simbolurilor pseudo-grafice din acesta a fost luat de simbolurile lipsă ale tipografiei rusești (cu excepția semnului de accent), precum și de simbolurile utilizate în limbile slave. aproape de rusă (ucraineană, bielorusă etc.)):

Datorită unei astfel de abundențe de codificări în limba rusă, producătorilor și producătorilor de fonturi software durerea de cap a apărut constant și noi, dragi cititori, am scăpat deseori pe cei notorii krakozyabry când a existat confuzie cu versiunea folosită în text.

Foarte des au ieșit când trimiteau și primeau mesaje prin e-mail, ceea ce a dus la crearea unor tabele de conversie foarte complexe, care, de fapt, nu au putut rezolva în mod fundamental această problemă și adesea utilizatorii de corespondență au folosit pentru a evita krakozyabr-urile notorii atunci când au folosit codificări rusești precum CP866, KOI8-R sau Windows 1251.

De fapt, krakozyabry, care a ieșit în locul textului rus, au fost abuz codificări a acestui limbaj care nu se potrivea cu cel în care a fost codificat mesaj text inițial.

De exemplu, dacă încercați să afișați caracterele codificate cu CP866 folosind tabelul de coduri Windows 1251, atunci aceiași krakozyabry (set de caractere fără sens) va ieși, înlocuind complet textul mesajului.

O situație similară apare foarte des atunci când, forumuri sau bloguri, când textul cu caractere ruse este salvat în mod eronat într-o codificare greșită, care este utilizată în mod implicit pe site sau în cea greșită. editor de text, care adaugă un cod la cod care nu este vizibil cu ochiul liber.

În cele din urmă, mulți s-au săturat de o astfel de situație, cu o multitudine de codificări și krakozyabras în continuă dezvoltare, au apărut condițiile prealabile pentru crearea unei noi variații universale, care să le înlocuiască pe toate cele existente și să rezolve în cele din urmă problema rădăcină a apariției texte necitite. În plus, a existat problema limbilor precum chineza, unde caracterele limbii erau mult mai mari de 256.

Unicode - codificări universale UTF 8, 16 și 32

Aceste mii de caractere din grupul de limbi din Asia de Sud-Est nu au putut fi descrise într-un octet de informații, care a fost alocat pentru codificarea caracterelor în versiunile extinse ale ASCII. Ca urmare, un consorțiu numit Unicode(Unicode - Unicode Consortium) cu colaborarea multor lideri din industria IT (cei care produc software, care codifică hardware, care creează fonturi), care erau interesați de apariția unei codificări universale a textului.

Prima variantă lansată sub auspiciile consorțiului Unicode a fost UTF 32... Numărul din numele codificării înseamnă numărul de biți care sunt utilizați pentru a codifica un caracter. 32 de biți sunt 4 octeți de informații care vor fi necesari pentru a codifica un singur caracter în noua codificare UTF universală.

Ca rezultat, același fișier cu text codat în versiunea extinsă a ASCII și în UTF-32, în acest din urmă caz, va avea dimensiunea (greutatea) de patru ori mai mare. Acest lucru este rău, dar acum avem ocazia să codificăm numărul de caractere egal cu două până la puterea de treizeci și a doua ( miliarde de caractere, care va acoperi orice valoare cu adevărat necesară cu o marjă colosală).

Dar multe țări cu limbi ale grupului european nu au trebuit să folosească deloc un număr atât de mare de caractere în codificare, dar când au folosit UTF-32 au primit o creștere de patru ori a greutății documentelor text pentru nimic, și ca un rezultat, o creștere a volumului de trafic pe Internet și a volumului de date stocate. Este mult și nimeni nu și-ar putea permite astfel de deșeuri.

Ca urmare a dezvoltării Unicode, UTF-16, care s-a dovedit a fi atât de reușit încât a fost acceptat în mod implicit ca spațiul de bază pentru toate simbolurile pe care le folosim. Folosește doi octeți pentru a codifica un caracter. Să vedem cum arată acest caz.

În sistemul de operare Windows, puteți urma calea „Start” - „Programe” - „Accesorii” - „Instrumente de sistem” - „Harta simbolurilor”. Ca urmare, se va deschide un tabel cu forme vectoriale ale tuturor fonturilor instalate în sistemul dvs. Dacă alegeți să „ Parametri suplimentari»Un set de caractere Unicode, veți putea vedea pentru fiecare font separat întreaga gamă de caractere incluse în acesta.

Apropo, făcând clic pe oricare dintre ele, îi puteți vedea pe doi octeți Cod UTF-16 format din patru cifre hexazecimale:

Câte caractere pot fi codate în UTF-16 cu 16 biți? 65536 (doi la puterea de șaisprezece), și acest număr a fost luat ca spațiu de bază în Unicode. În plus, există modalități de codificare folosindu-l și aproximativ două milioane de caractere, dar au fost limitate la spațiul extins al unui milion de caractere de text.

Dar chiar și această versiune de succes a codificării Unicode nu a adus multă satisfacție celor care au scris, de exemplu, programe doar în limba engleză, deoarece după trecerea de la versiunea extinsă a ASCII la UTF-16, greutatea documentelor s-a dublat (una octeți pe un caracter în Aski și doi octeți pentru același caracter în UTP-16).

Tocmai pentru satisfacția tuturor și a tuturor celor din consorțiul Unicode sa decis să vină codificare cu lungime variabilă... Au numit-o UTF-8. În ciuda cifrei opt din nume, are într-adevăr o lungime variabilă, adică fiecare caracter al textului poate fi codat într-o secvență de unu până la șase octeți în lungime.

În practică, în UTF-8, se folosește doar intervalul de la unu la patru octeți, deoarece dincolo de patru octeți de cod, nimic nu este teoretic posibil de imaginat. Toate caracterele latine din acesta sunt codificate într-un octet, la fel ca în ASCII vechi.

Ceea ce este demn de remarcat, în cazul codificării numai a alfabetului latin, chiar și acele programe care nu înțeleg Unicode vor citi tot ceea ce este codat în UTF-8. Acestea. partea de bază a lui Asuka tocmai a trecut în această idee a consorțiului Unicode.

Caracterele chirilice din UTF-8 sunt codificate în doi octeți și, de exemplu, în cele georgiene - în trei octeți. Unicode Consortium după crearea UTF 16 și 8 a rezolvat problema principală - acum avem există un singur spațiu de cod în fonturi... Și acum producătorii lor trebuie doar să-l umple cu forme vectoriale de simboluri text bazate pe punctele forte și capacitățile lor. Acum chiar și în seturi.

În „Tabelul de caractere” de mai sus puteți vedea că diferite fonturi acceptă un număr diferit de caractere. Unele fonturi bogate în Unicode pot fi foarte grele. Dar acum diferă nu prin faptul că sunt create pentru diferite codificări, ci prin faptul că producătorul de fonturi a completat sau nu a completat un spațiu de cod unic cu anumite forme vectoriale până la capăt.

Krakozyabry în loc de litere rusești - cum să remediați

Să vedem acum cum apar krakozyabras în locul textului sau, cu alte cuvinte, cum este aleasă codificarea corectă pentru textul rus. De fapt, este setat în programul în care creați sau editați chiar textul sau codul folosind fragmente de text.

Pentru a edita și a crea fișiere text Eu personal folosesc una foarte bună, după părerea mea. Cu toate acestea, poate evidenția sintaxa a încă o sută de limbaje de programare și markup și are și capacitatea de a se extinde folosind pluginuri. Citit revizuire detaliată acest program minunat la linkul furnizat.

În meniul de sus al Notepad ++ există un element „Codificări”, unde veți putea converti versiunea existentă la cea care este utilizată implicit pe site-ul dvs.:

În cazul unui site pe Joomla 1.5 și mai mare, precum și în cazul unui blog pe WordPress, pentru a evita apariția fisurilor, alegeți opțiunea UTF 8 fără BOM... Ce este prefixul BOM?

Faptul este că, atunci când codul YUTF-16 a fost dezvoltat, din anumite motive, au decis să atașeze la el un astfel de lucru, cum ar fi capacitatea de a scrie un cod de caractere, atât în ​​ordine directă (de exemplu, 0A15), cât și în sens invers (150A) . Și pentru ca programele să înțeleagă în ce secvență să citească codurile și a fost inventat BOM(Byte Order Mark sau, cu alte cuvinte, semnătură), care a fost exprimat prin adăugarea a trei octeți suplimentari chiar la începutul documentelor.

În codificarea UTF-8, nu există nicio BOM în consorțiul Unicode și, prin urmare, adăugarea unei semnături (acești cei mai notorii trei octeți suplimentari la începutul documentului) pentru unele programe interferează pur și simplu cu citirea codului. Prin urmare, atunci când salvăm fișiere în UTP, ar trebui să alegem întotdeauna opțiunea fără BOM (fără semnătură). Așa că avansați protejează-te de târâre afară krakozyabrov.

Ceea ce este de remarcat este că unele programe din Windows nu pot face acest lucru (nu pot salva text în UTP-8 fără BOM), de exemplu, notorul Notepad Windows. Acesta salvează documentul în UTF-8, dar înaintează semnătura (trei octeți în plus) până la început. Mai mult, acești octeți vor fi întotdeauna aceiași - citiți codul în ordine directă. Dar pe servere, din cauza acestui fleac, poate apărea o problemă - krakozyabry va ieși.

Deci în niciun caz nu utilizați un bloc de notă Windows obișnuit pentru editarea documentelor site-ului dvs., dacă nu doriți apariția krakozyabrs. Cea mai bună și mai simplă opțiune, cred, este deja menționatul editor Notepad ++, care practic nu are dezavantaje și constă doar din avantaje.

În Notepad ++, atunci când alegeți o codificare, veți putea converti textul în codificarea UCS-2, care este inerent foarte apropiată de standardul Unicode. De asemenea, în Notepad va fi posibilă codificarea textului în ANSI, adică în raport cu limba rusă, va fi deja descris de noi chiar deasupra Windows 1251. De unde provin aceste informații?

Este înregistrat în registrul sălii de operație. Sisteme Windows- ce codare să alegeți în cazul ANSI, care să alegeți în cazul OEM (pentru limba rusă va fi CP866). Dacă instalați o limbă implicită diferită pe computer, atunci aceste codificări vor fi înlocuite cu altele similare din categoria ANSI sau OEM pentru aceeași limbă.

După ce salvați documentul în codificare de care aveți nevoie în Notepad ++ sau deschideți documentul de pe site pentru editare, puteți vedea numele acestuia în colțul din dreapta jos al editorului:

Pentru a evita krakozyabrov, pe lângă acțiunile descrise mai sus, va fi util să scrieți informații despre această codificare în antetul codului sursă al tuturor paginilor site-ului, astfel încât să nu existe confuzie pe server sau pe gazda locală.

În general, în toate limbajele de marcare hipertext cu excepția Html, se folosește o declarație specială xml, care indică codarea textului.

Înainte de a începe să analizeze codul, browserul va ști ce versiune este utilizată și cum să interpreteze exact codurile de caractere ale acestei limbi. Dar ceea ce este demn de remarcat este că, dacă salvați documentul în unicode implicit, atunci această declarație XML poate fi omisă (codificarea va fi considerată UTF-8 dacă nu există BOM sau UTF-16 dacă există o BOM).

În cazul unui document Limbaj HTML pentru a indica folosirea codificării Meta element, care este scris între etichetele Head de deschidere și de închidere:

... ...

Această intrare este destul de diferită de cea acceptată în, dar respectă pe deplin noul standard Html 5 introdus pe ascuns și va fi înțeles 100% corect de către oricine este folosit pe acest moment browsere.

În teorie, un element Meta cu o indicație a codificării Document HTML ar fi mai bine să pun cât mai sus posibil în antetul documentului astfel încât în ​​momentul întâlnirii primului caracter din text care nu provine din ANSI de bază (care este întotdeauna citit corect și în orice variantă), browserul ar trebui să aibă deja informații despre cum să interpreteze codurile acestor caractere.

Multă baftă! Ne vedem în curând pe paginile site-ului blogului

S-ar putea să fii interesat

Ce Adrese URL Care este diferența dintre linkurile absolute și relative pentru site
OpenServer - modern server localși un exemplu de utilizare a acestuia pentru Instalații WordPress pe calculator
Ce este Chmod, ce permisiuni pentru a aloca fișierelor și folderelor (777, 755, 666) și cum se face prin PHP
Căutare Yandex pe site și magazin online