ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

HackWare.ru

Π­Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ…Π°ΠΊΠΈΠ½Π³ ΠΈ тСстированиС Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅, информационная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Как быстро ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ

Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ вмСсто Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ тСкста показываСтся Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ символы.

Или Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° английский символы ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π° вмСсто Π΄Ρ€ΡƒΠ³ΠΈΡ… символов Π·Π½Π°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ΠΈ Π±ΡƒΠΊΠ²Ρ‹ с Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ:

Π‘Ρ‹Π²Π°ΡŽΡ‚ строки состоящиС ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ² с Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, Π½Π° ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Π·Π½Π°ΠΊΠ° Ρ€Π°Π²Π½ΠΎ:

Иногда приходится ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с тСкстом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ рСгулярно встрСчаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш с иксом (\x) послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ΄ΡƒΡ‚ Π±ΡƒΠΊΠ²Ρ‹ ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹:

Π§Ρ‚ΠΎΠ±Ρ‹ быстро Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° строка, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ бСсплатным ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисом ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ сСрвис скопирован ΠΎΡ‚ΡΡŽΠ΄Π° http://0xcc.net/jsescape/.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ простой β€” Π² ΠΎΠΊΠ½ΠΎ Π²Ρ‹ вставляСтС строку Π² нСизвСстной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, Π° сСрвис пытаСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли Π² ΠΏΠΎΠ»Π΅ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ тСкст Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ тСкст, Π·Π½Π°Ρ‡ΠΈΡ‚ ваша строка ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл Ҁ” ВыполнитС вÑ од или ΓΒ·ΓΒ°Γ‘Β€ΓΒ΅ΓΒ³ΓΒΈΓ‘ΒΓ‘Β‚Γ‘Β€ΓΒΈΓ‘Β€Γ‘ΒƒΓΒΉΓ‘Β‚ΓΒ΅Γ‘ΒΓ‘ΒŒ:

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ! Π­Ρ‚Π° строка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрёмся со строкой:

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

Π•Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ оказалось:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° сообщСниС ΠΈΠ· письма ΠΎΡ‚ мошСнников:

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ

НСкоторыС часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Β«Π½Π° Π³Π»Π°Π·Β». ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅Π²ΠΎΠΎΡ€ΡƒΠΆΡ‘Π½Π½Ρ‹ΠΌ Π³Π»Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ строки ΠΈΠ»ΠΈ быстрСС ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ тСкст Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅.

URL ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ URL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€ символов US-ASCII. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΉ нСдостаток, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лишь латинскиС Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ нСсколько Π·Π½Π°ΠΊΠΎΠ² ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ. ВсС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠΊΠ²Ρ‹ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹, Π±ΡƒΠΊΠ²Ρ‹ с диакритичСскими Π·Π½Π°ΠΊΠ°ΠΌΠΈ, Π»ΠΈΠ³Π°Ρ‚ΡƒΡ€Ρ‹, ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° описана Π² стандартС RFC 3986 ΠΈ называСтся URL-encoding, URLencoded ΠΈΠ»ΠΈ percent‐encoding.

Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π²Π΅Π±-Ρ„ΠΎΡ€ΠΌ, ΠΊΠΎΠ³Π΄Π° Content-Type ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ application/x-www-form-urlencoded Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² URL ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

Base64

Π― ΠΏΠΎΡ‡Ρ‚ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ сообщСния Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ β€” ΠΎΠ½ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ большими ΠΈ малСнькими латинскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ. На ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Π·Π½Π°ΠΊΠ° Ρ€Π°Π²Π½ΠΎ:

Π’ любом случаС, ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эту ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, Π΄Π°ΠΆΠ΅ сами Ρ‚ΠΎΠ³ΠΎ Π½Π΅ зная, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сообщСния элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Base64, особСнно для писСм, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ (Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅).

Base64 β€” стандарт кодирования Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 64 символов ASCII. Алфавит кодирования содСрТит тСкстово-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ латинскиС символы A-Z, a-z ΠΈ 0-9 (62 Π·Π½Π°ΠΊΠ°) ΠΈ 2 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… символа, зависящих ΠΎΡ‚ систСмы Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹Π΅ 3 исходных Π±Π°ΠΉΡ‚Π° ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ 4 символами (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ¹⁄₃).

Π­Ρ‚Π° систСма ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ для прСдставлСния Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² тСкстС письма (транспортноС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅).

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ сСрвис Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Base64, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Base64, Π½ΠΎ имССтся ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: довольно часто длинная строка Base64 Π² email разбиваСтся Π½Π° строки ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ удобства). Π’ сСрвисС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π½Π° ссылка, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ лишниС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строк, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку, ΠΈΠ½Π°Ρ‡Π΅ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа «новая строка» сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ отобраТаСмая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8 выглядит ΠΊΠ°ΠΊ большиС Π±ΡƒΠΊΠ²Ρ‹ N ΠΈ D с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ линиями, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΠΎΠ±ΠΈ 3/4.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8 ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ISO-8859-1 ΠΈΠ»ΠΈ CP1258. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ сСрвиса Ρ‚Π°ΠΊΠΈΠ΅ строки ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ссли ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠΊΠ½Π° Quoted-printable ΠΈΠ»ΠΈ URL.

UTF-8 ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° обработанная ΠΊΠ°ΠΊ ANSI Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ строки ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±ΡƒΠΊΠ² P, C, Π“ ΠΈ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ² r ΠΈ s:

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ особСнно часто ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ строка записанная Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΎ скопируйтС Π΅Ρ‘ Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ:

Π’Π°ΠΊΠΈΠ΅ строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ написанныС Π±ΡƒΠΊΠ²Π°ΠΌΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° строки исказятся (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠΉΠΌΡ‘Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π²Π΅Π±-страницы):

Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² экранированныС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

На этой ΠΆΠ΅ страницС, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π² саму ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ своё ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ строк, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΌΠΈ символами, ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы, ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… записи строк ΠΈ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ с Π½ΠΈΠΌΠΈ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ рСкомСндуСтся для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΡ€ΡƒΠ³ΠΎΠ·ΠΎΡ€Π° ΡΡ‚Π°Ρ‚ΡŒΡ Β«ASCII ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС строк. ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками».

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ строки ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±Π΅Π· сторонних сСрвисов

Π₯отя ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ сСрвис НЕ отсылаСт Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр, Π° обходится ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сайты.

Double Commander ΠΏΡ€ΠΈ просмотрС тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² (для этого Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F3) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (F4) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ послС открытия ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ.

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для Ρ‚Π΅Ρ…, Ρƒ ΠΊΠΎΠ³ΠΎ Linux, β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ нСпонятной строки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ. Для этого смотритС ΡΡ‚Π°Ρ‚ΡŒΡŽ «Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ строки. Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ UTF-8 Π² LinuxΒ».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с тСкстами Π½Π° Python: ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, нормализация, чистка

Π—Π°Ρ‡Π΅ΠΌ эта ΡΡ‚Π°Ρ‚ΡŒΡ?

Об ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ тСкстов Π½Π° СстСствСнном языкС сСйчас Π·Π½Π°ΡŽΡ‚ всС. ВсС Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопрос Π‘ΠΈΡ€ΠΈ ΠΈΠ»ΠΈ АлисС, пользовались Grammarly (это Π½Π΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°), ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ стихов, тСкстов. ΠΈΠ»ΠΈ просто Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ запрос Π² Google. Π”Π°, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ просто. На самом Π΄Π΅Π»Π΅ Google ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, благодаря ΡˆΡ‚ΡƒΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ Π² вашСм запросС.

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ тСкста ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ситуациями, ΠΊΠΎΠ³Π΄Π° тСкст содСрТит спСцифичСскиС символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ€Π°Π²Π½Π΅ с «ΠΏΡ€ΠΎΡΡ‚Ρ‹ΠΌ тСкстом» (Π²Π·ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ наши горячо Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ вставки Π½Π° французском ΠΈΠ· «Π’ΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡ€») ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкста ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒΡΡ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ввСсти Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡƒΡŽ строку запрос с символами с ΡƒΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ΠΌ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π°ΠΊΡƒΡ‚), ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ «Γ³», поисковая систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, содСрТащиС слова ΠΈΠ· вашСго запроса, символы с ΡƒΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠΆΠ΅ выглядят ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ символы.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос:

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

Запрос содСрТит символ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π°ΠΊΡƒΡ‚ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ слово ΠΈΠ· запроса, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΡ‚ ΠΎΠ½ΠΎ Π½Π΅ содСрТит Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΉ символ, просто Π±ΡƒΠΊΠ²Ρƒ «ΠΎ».

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ довольно Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ тСкстов ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Π½ΠΎ я Π½Π΅ ΠΎΠ± этом Ρ…ΠΎΡ‡Ρƒ Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π΄Π°Ρ‚ΡŒ. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ nltk, стСмминг, Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚.ΠΏ. Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° нСсколько ступСнСк Π½ΠΈΠΆΠ΅ ΠΈ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тонкости ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΡ‚ΠΊΡƒΠ΄Π° взялась ΡΡ‚Π°Ρ‚ΡŒΡ?

Одним ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π² области ИИ являСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкстов Π½Π° СстСствСнном языкС. Π’ процСссС изучСния Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ я Π½Π°Ρ‡Π°Π» Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ сСбС вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ мСня ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ тСкстов Π² памяти, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ, приводятся ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Π― ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π» эту Ρ‚Π΅ΠΌΡƒ Π² Π½Π°Ρ‡Π°Π»Π΅, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠ³ΠΎ рСсурса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. НаписаниСм Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Тизнь людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ столкнутся с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ чтСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстов Π½Π° Python ΠΈ самому Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅. А Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠΈΠ½Ρ‚Π°ΠΌΠΈ своСго изучСния я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ВаТная Ρ€Π΅ΠΌΠ°Ρ€ΠΊΠ°: я Π½Π΅ являюсь спСциалистом Π² области ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстов. Π˜Π·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ изучСния.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° чтСния Ρ„Π°ΠΉΠ»ΠΎΠ²

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» с тСкстом. Нам Π½ΡƒΠΆΠ½ΠΎ этот тСкст ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Казалось Π±Ρ‹, пиши сСбС Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ скрипт для чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π΄Π° ΠΈ радуйся:

Π’ Ρ„Π°ΠΉΠ»Π΅ содСрТится Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΡ‚ ΠΈΠ·Ρ€Π΅Ρ‡Π΅Π½ΠΈΠ΅:

Ρ‡Ρ‚ΠΎ пСрСводится с испанского ΠΊΠ°ΠΊ ΠΏΠΈΡ‚ΠΎΠ½. Однако консоль OC Windows 10 ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

БСйчас ΠΌΡ‹ разбСрёмся, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°

Π”ΡƒΠΌΠ°ΡŽ, это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠΌ, Ссли я скаТу, Ρ‡Ρ‚ΠΎ любой символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заносится Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, хранится Π² Π²ΠΈΠ΄Π΅ числа, Π° Π½Π΅ Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. Π­Ρ‚ΠΎ число опрСдСляСтся ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ кодовая позиция символа. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° опрСдСляСт, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ число Π±ΡƒΠ΄Π΅Ρ‚ ассоциировано с символом.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с нСизвСстным содСрТимым, ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, какая Ρƒ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π°.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΠΈΠ½Ρ‚: ΠΏΡ€ΠΈ записи ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π² дальнСйшСм.

Ошибки, связанныС с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки, связанной с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выдаст ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° выполнСния Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π² Ρ„Π°ΠΉΠ»Π΅ всё Π΅Ρ‰Ρ‘ содСрТится испанский ΠΏΠΈΡ‚ΠΎΠ½):

даст Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π‘ΡƒΡ‚ΡŒ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ символы Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ UnicodeError ΠΈ наслСдуСмыС ΠΎΡ‚ Π½Π΅Π³ΠΎ.

ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰ΠΈΠ΅ символы ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π±Π΅Π· возбуТдСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Волько для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° encode :

ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰ΠΈΠ΅ значСния XML.

ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм.

ΠΠ΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° ΠΈΠΌΠ΅Π½Π° этих символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ бСрутся ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Unicode.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²:

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΠΈΠ½Ρ‚: Ссли Π² тСкстах ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ для ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символы, Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ возбуТдСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.

CΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ рСгистра

И ΠΏΠΎ классикС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ²Ρ‘Π» вСсь тСкст ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру, Π½ΠΎ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π» спСцифичСский Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ символ.

Нормализация

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π½Π΅ΡˆΠ½Π΅ Π΄Π²Π° этих символа выглядят Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Однако Ссли ΠΌΡ‹ попытаСмся вывСсти ΠΈΠΌΠ΅Π½Π° этих символов, ΠΊΠ°ΠΊ ΠΈΡ… Π²ΠΈΠ΄ΠΈΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python’a, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нас порядком ΡƒΠ΄ΠΈΠ²ΠΈΡ‚.

Π’ Python Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ символах Unicode, ΠΈΡ… ΠΈΠΌΠ΅Π½Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈΠΈ ΠΈ Ρ‚.ΠΏ. (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ str.isdigit() Π±Π΅Ρ€ΡƒΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· этих Π΄Π°Π½Π½Ρ‹Ρ…). Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΈΠΌΠ΅Π½Π° символов, исходя ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая содСрТится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Unicode.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

Π˜Ρ‚Π°ΠΊ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python’a Π²ΠΈΠ΄ΠΈΡ‚ эти символы ΠΊΠ°ΠΊ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ…, Π½ΠΎ Π² стандартС Unicode ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π’Π°ΠΊΠΈΠ΅ символы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ каноничСскими эквивалСнтами. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²Π° этих символа ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π”Π°Π½Π½Ρ‹Π΅ символы Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ каноничСскими эквивалСнтами. Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ символ «Γ©» Π² стандартС UnicodeΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн двумя способами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ. Π‘ΠΈΠΌΠ²ΠΎΠ» «Γ©» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ двумя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ тСкста. ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ «кракозябры». ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ кодирования. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€

Данная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π΅Π»ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ тСкста, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ. ПолСзна ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ прСдставляСт, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ тСкста ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ символы, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ кодирования ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ этого вопроса придСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ свСсти Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π½Π΅ ΠΎΠ΄Π½Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ довольно Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π½Π° это. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΆΠ΅ это всС собрано Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΈ ΠΏΠΎ ΠΈΠ΄Π΅Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ Ρ€Π°Π·Π±ΠΎΡ€ Π½Π° ΠΌΠΎΠΉ взгляд получился довольно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ.

О Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎΠΌ: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ (ASCII, Windows-1251 ΠΈ Ρ‚.Π΄.), прСдпосылки появлСния Unicode, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Unicode, Unicode-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8, UTF-16, ΠΈΡ… отличия, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ особСнности, ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ кодирования символов, практичСский Ρ€Π°Π·Π±ΠΎΡ€ кодирования ΠΈ дСкодирования.

Вопрос с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ сСйчас ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΡƒΠΆΠ΅ потСрял Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ всС ΠΆΠ΅ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ сСйчас ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° это Π΄ΡƒΠΌΠ°ΡŽ лишним Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ Unicode

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π΄ΡƒΠΌΠ°ΡŽ стоит с Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»Π° Ρ‚Π°ΠΊ сильно Ρ€Π°Π·Π²ΠΈΡ‚Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π±ΠΈΡ€Π°Π»Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρ‹. Π’ΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ стандартизаторы Π΅Ρ‰Π΅ Π½Π΅ Π΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π½Π°Π±Π΅Ρ€ΡƒΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ. БобствСнно Ρ‚ΠΎΠ³Π΄Π° Ρ‚ΠΎ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ тСкста. Π’ ΠΊΠ°ΠΊΠΎΠΌ Ρ‚ΠΎ ΠΆΠ΅ Π²ΠΈΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π° ΠΎΠ½ (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ Π½ΡƒΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚. Π’Π°ΠΊ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΎΠ΄Π½ΠΎ-байтовая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ASCII (скорСС всСго ΠΎΠ½Π° Π½Π΅ пСрвая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°, Π½ΠΎ ΠΎΠ½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнная ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ, ΠΏΠΎ этому Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π° ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ). Π§Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠ· сСбя прСдставляСт? ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ 8-ю Π±ΠΈΡ‚Π°ΠΌΠΈ. НСслоТно ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ исходя ΠΈΠ· этого ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 256 символов (восСмь Π±ΠΈΡ‚, Π½ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† 2 8 =256).

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 7 Π±ΠΈΡ‚ (128 символов 2 7 =128) Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚Π΄Π°Π½Ρ‹ ΠΏΠΎΠ΄ символы латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ пСрСносы строк, табуляция ΠΈ Ρ‚.Π΄.) ΠΈ грамматичСскиС символы. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΏΠΎΠ΄ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ языки. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 128 символов всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π° Ссли Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой Ρ€ΠΎΠ΄Π½ΠΎΠΉ язык поТалуйста, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ. БобствСнно Ρ‚Π°ΠΊ ΠΈ появился ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ. И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сами ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π²ΠΎΡ‚ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ я Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² России Π±Π΅Ρ€Ρƒ ΠΈ создаю тСкстовый Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Ρƒ мСня ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ создаСтся Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows-1251 (русская ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°ΡΡΡ Π² ОБ Windows) ΠΈ ΠΎΡ‚ΡΡ‹Π»Π°ΡŽ Π΅Π³ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² БША. Π”Π°ΠΆΠ΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ собСсСдник Π·Π½Π°Π΅Ρ‚ русский язык, Π΅ΠΌΡƒ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π² ΠΌΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ с Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой ASCII) ΠΎΠ½ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π½Π΅ русскиС Π±ΡƒΠΊΠ²Ρ‹, Π° кракозябры. Если Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‚ΠΎ Ρ‚Π΅ мСста Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π½Π°ΠΏΠΈΡˆΡƒ Π½Π° английском отобразятся Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 128 символов ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Windows-1251 ΠΈ ASCII ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π½ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΌ Π³Π΄Π΅ я написал русский тСкст, Ссли ΠΎΠ½ Π² своСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π² Π²ΠΈΠ΄Π΅ кракозябр.

Π”ΡƒΠΌΠ°ΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ понятна. БобствСнно этих Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ стало ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ стал ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ, ΠΈ Π² Π½Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° своСм языкС ΠΈ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π» Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ язык выглядСл ΠΊΠ°ΠΊ кракозябры. Π‘Ρ‹Π»ΠΎ Π΄Π²Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΎΠ±Ρ‰ΡƒΡŽ для всСх символов Π² ΠΌΠΈΡ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов. ПобСдил Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚Π°ΠΊ создали Unicode Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов.

НСбольшой ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ASCII

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ покаТСтся элСмСнтарщиной, Π½ΠΎ Ρ€Π°Π· ΡƒΠΆ Ρ€Π΅ΡˆΠΈΠ» ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ всС ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‚ΠΎ это Π½Π°Π΄ΠΎ.

Π’ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° символов ASCII:

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст

Π’ΡƒΡ‚ ΠΈΠΌΠ΅Π΅ΠΌ 3 ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ:

Unicode

Π‘ прСдпосылками создания ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для всСх Π² ΠΌΠΈΡ€Π΅ символов, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ собствСнно, ΠΊ самой Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Unicode β€” ΠΈΠΌΠ΅Π½Π½ΠΎ эта Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ Π΅ΡΡ‚ΡŒ (это Π½Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° символов). Она состоит ΠΈΠ· 1 114 112 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ символами, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ вряд Π»ΠΈ понадобится это пространство Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ это ΠΎΠ±Ρ‰Π΅Π΅ пространство Π½Π° 17 Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠΎ 65 536 символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ содСрТит свою Π³Ρ€ΡƒΠΏΠΏΡƒ символов. НулСвой Π±Π»ΠΎΠΊ β€” Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ, Ρ‚Π°ΠΌ собраны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ употрСбляСмыС символы всСх соврСмСнных Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ². Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ находятся символы Π²Ρ‹ΠΌΠ΅Ρ€ΡˆΠΈΡ… языков. Π•ΡΡ‚ΡŒ Π΄Π²Π° Π±Π»ΠΎΠΊΠ° ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ частноС использованиС. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

Π˜Ρ‚ΠΎΠ³ΠΎ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ символов юникода составляСт ΠΎΡ‚ 0 Π΄ΠΎ 10FFFF (Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅).

Π—Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ символы Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ с приставкой Β«U+Β». НапримСр ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя символы ΠΎΡ‚ U+0000 Π΄ΠΎ U+FFFF (ΠΎΡ‚ 0 Π΄ΠΎ 65 535), Π° послСдний сСмнадцатый Π±Π»ΠΎΠΊ ΠΎΡ‚ U+100000 Π΄ΠΎ U+10FFFF (ΠΎΡ‚ 1 048 576 Π΄ΠΎ 1 114 111).

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊΠ° Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Ρ‹ всС символы ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ. Но Ρ‚ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои нСдостатки. Если Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π±Ρ‹Π» Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Ρ€Π°Π·Π½Ρ‹ΠΌ количСством Π±Π°ΠΉΡ‚ΠΎΠ². НапримСр для кодирования всСх символов английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‚ ΠΆΠ΅ символ Β«oΒ» (Π°Π½Π³Π».) ΠΈΠΌΠ΅Π΅Ρ‚ Π² юникодС Π½ΠΎΠΌΠ΅Ρ€ U+006F, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΈ Π² ASCII β€” 6F Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ ΠΈ 111 Π² дСсятСричной. А Π²ΠΎΡ‚ для кодирования символа «U+103D5» (это дрСвнСпСрсидская Ρ†ΠΈΡ„Ρ€Π° сто) β€” 103D5 Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ ΠΈ 66 517 Π² дСсятСричной, Ρ‚ΡƒΡ‚ Π½Π°ΠΌ потрСбуСтся ΡƒΠΆΠ΅ Ρ‚Ρ€ΠΈ Π±Π°ΠΉΡ‚Π°.

Π Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ юникод-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ UTF-8 ΠΈ UTF-16. Π”Π°Π»Π΅Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎ Π½ΠΈΡ….

UTF-8 являСтся юникод-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любой символ юникода.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚? ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ структурной (Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ) Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ являСтся Π±Π°ΠΉΡ‚. Π’ΠΎ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ символ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Ρ€Π°Π·Π½Ρ‹ΠΌ количСством структурных Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ количСством Π±Π°ΠΉΡ‚ΠΎΠ². Π’Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π° кодируСтся ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ, Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π° двумя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

НСмного ΠΎΡ‚ΡΡ‚ΡƒΠΏΠ»ΡŽ ΠΎΡ‚ Ρ‚Π΅ΠΌΡ‹, Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ASCII ΠΈ UTF

Π’ΠΎ Ρ‡Ρ‚ΠΎ латинскиС символы ΠΈ основныС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ пСрСносы строк, табуляции ΠΈ Ρ‚.Π΄. Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ utf-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ совмСстимыми с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ASCII. Π’ΠΎ Π΅ΡΡ‚ΡŒ фактичСски Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции находятся Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ самых мСстах ΠΊΠ°ΠΊ Π² ASCII, Ρ‚Π°ΠΊ ΠΈ Π² UTF, ΠΈ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΠ½ΠΈ ΠΈ Ρ‚Π°ΠΌ ΠΈ Ρ‚Π°ΠΌ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ ΠΈ обСспСчиваСт эту ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.

Π‘Ρ€Π°Π²Π½ΠΈΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ„Ρ€Π°Π·Π° Β«Hello ΠΌΠΈΡ€Β» Π² Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…: Windows-1251 (русская ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°), ISO-8859-1 (ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°ΠΏΠ°Π΄Π½ΠΎ-СвропСйских языков), UTF-8 (юникод-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°). Π‘ΡƒΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° состоит Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π·Π° написана Π½Π° Π΄Π²ΡƒΡ… языках. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ….

ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ написан тСкст
Π’ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ISO-8859-1 Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΡ… символов Β«ΠΌΒ», Β«ΠΈΒ» ΠΈ Β«Ρ€Β».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ разбСрСмся ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Π΅Π³ΠΎ нСльзя ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΈΠ· Π·Π° Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ….

Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ„Ρ€Π°Π·Π° Π±Ρ‹Π»Π° записана Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows-1251. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ΡˆΠ΅ запишСм эту Ρ„Ρ€Π°Π·Ρƒ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows-1251. Для этого Π½Π°ΠΌ потрСбуСтся всСго Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСвСсти ΠΈΠ· дСсятСричной ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ систСмы (ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ΡˆΠ΅) символы Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ.

01001000 01100101 01101100 01101100 01101111 00100000 11101100 11101000 11110000
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π²ΠΎΡ‚ это ΠΈ Π΅ΡΡ‚ΡŒ Ρ„Ρ€Π°Π·Π° Β«Hello ΠΌΠΈΡ€Β» Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows-1251.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» с тСкстом, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ этот тСкст. Π’Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ISO-8859-1 ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π² своСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. Как сказано Π²Ρ‹ΡˆΠ΅ с Ρ‡Π°ΡΡ‚ΡŒΡŽ символов всС Π² порядкС, ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, ΠΈ Π΄Π°ΠΆΠ΅ находятся Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ мСстах, Π½ΠΎ Π²ΠΎΡ‚ с символами ΠΈΠ· слова Β«ΠΌΠΈΡ€Β» всС слоТнСС. Π­Ρ‚ΠΈΡ… символов Π² этой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π½Π΅Ρ‚, Π° Π½Π° ΠΈΡ… мСстах Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ISO-8859-1 находятся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы. А ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Β«ΠΌΒ» β€” позиция 236, Β«ΠΈΒ» β€” 232. Β«Ρ€Β» β€” 240. И Π½Π° этих позициях Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ISO-8859-1 находятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы позиция 236 β€” символ «Γ¬», 232 β€” «Γ¨», 240 β€” «Γ°»

Π—Π½Π°Ρ‡ΠΈΡ‚ Ρ„Ρ€Π°Π·Π° Β«Hello ΠΌΠΈΡ€Β» закодированная Π² Windows-1251 ΠΈ открытая Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ISO-8859-1 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: Β«Hello ìèð». Π’ΠΎΡ‚ ΠΈ получаСтся Ρ‡Ρ‚ΠΎ эти Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ совмСстимы лишь частично, ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½Π΅ получится, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ просто напросто Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΡ… символов.

Π’ΡƒΡ‚ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ юникод-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС рассмотрим UTF-8. Π’ΠΎ Ρ‡Ρ‚ΠΎ символы Π² Π½Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹ΠΌ количСством Π±Π°ΠΉΡ‚ΠΎΠ² ΠΎΡ‚ 1 Π΄ΠΎ 4 ΠΌΡ‹ ΡƒΠΆΠ΅ выяснили. Π’Π΅ΠΏΠ΅Ρ€ΡŒ стоит ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UTF ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 256 символов, ΠΊΠ°ΠΊ Π² Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…, Π° Π²ΠΎΠ±Ρ‰Π΅ всС символы юникода

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ символ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π΅ Π·Π° сам символ, Π° Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ) Π±ΠΈΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ для кодирования символа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всСго ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Π§Ρ‚ΠΎ ΠΈ обСспСчиваСт ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ASCII. Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов ASCII Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 128 символов (английский Π°Π»Ρ„Π°Π²ΠΈΡ‚, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы ΠΈ Π·Π½Π°ΠΊΠΈ прСпинания) Ссли ΠΈΡ… привСсти ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ, всС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° (Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Ссли Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ символы Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π°, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π±ΠΈΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ).

Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΠΈΡ‚ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚ΠΎ символ кодируСтся нСсколькими Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

Для Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… символов ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Π±ΠΈΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ β€” 110

для Ρ‚Ρ€Π΅Ρ…-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… символов Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ β€” 1110

1110 1000 10 000111 10 1010101 β€” суммируСм всС ΠΊΡ€ΠΎΠΌΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π² 16-Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ 103Π’5, U+103D5 β€” дрСвнСпСрситдская Ρ†ΠΈΡ„Ρ€Π° сто ( 10000001111010101 )

для Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… символов Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ β€” 11110

11110 100 10 001111 10 111111 10 111111 β€” U+10FFFF это послСдний допустимый символ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ юникода ( 100001111111111111111 )

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Ρ„Ρ€Π°Π·Ρƒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8.

UTF-16

UTF-16 Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅ Π΅Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ UTF-8 состоит Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ структурной Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ Π² Π½Π΅ΠΉ являСтся Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π° Π΄Π²Π° Π±Π°ΠΉΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-16 любой символ юникода ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈΠ±ΠΎ двумя, Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ для понятности Π² дальнСйшСм ΠΏΠ°Ρ€Ρƒ Ρ‚Π°ΠΊΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ² я Π±ΡƒΠ΄Ρƒ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого любой символ юникода Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-16 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ, Π»ΠΈΠ±ΠΎ двумя.

НачнСм с символов ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ. Π›Π΅Π³ΠΊΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΡ… символов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 65 535 (2Π²16), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпадаСт с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ юникода. ВсС символы находящиСся Π² этом Π±Π»ΠΎΠΊΠ΅ юникода Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-16 Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ (двумя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ), Ρ‚ΡƒΡ‚ всС просто.

символ Β«oΒ» (Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π°) β€” 00000000 01101111
символ Β«MΒ» (ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°) β€” 00000100 00011100

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим символы Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ юникод Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Для ΠΈΡ… кодирования потрСбуСтся ΡƒΠΆΠ΅ Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ (4 Π±Π°ΠΉΡ‚Π°). И ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡ… кодирования Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎ порядку.

Для Π½Π°Ρ‡Π°Π»Π° Π²Π²Π΅Π΄Π΅ΠΌ понятия суррогатной ΠΏΠ°Ρ€Ρ‹. Буррогатная ΠΏΠ°Ρ€Π° β€” это Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для кодирования ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа (ΠΈΡ‚ΠΎΠ³ΠΎ 4 Π±Π°ΠΉΡ‚Π°). Для Ρ‚Π°ΠΊΠΈΡ… суррогатных ΠΏΠ°Ρ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ юникода ΠΎΡ‚Π²Π΅Π΄Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ D800 Π΄ΠΎ DFFF. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ число ΠΈΠ· этого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ Π½Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ, Π° суррогатная ΠΏΠ°Ρ€Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 10000 β€” 10FFFF (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ символ для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹) Π½ΡƒΠΆΠ½ΠΎ:

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π·Π°ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌ символ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π΄Ρ€Π΅Π²Π½Π΅ΠΏΠ΅Ρ€ΡΠΈΠ΄ΡΠΊΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ сто (U+103D5):

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *