Π Π°Π±ΠΎΡ‚Π° с тСкстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 часто сталкиваСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ отобраТСния спСцифичСских символов. Одной ΠΈΠ· самых частых Π·Π°Π΄Π°Ρ‡ являСтся Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ для формирования HTML-ΠΊΠΎΠ΄Π°, JSON-структур ΠΈΠ»ΠΈ просто красивого оформлСния ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π·Π°Π΄Π°Ρ‡Π° каТСтся Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ особСнности синтаксиса языка 1Π‘ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ прСпятствия для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слуТСбными символами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для обозначСния Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° строковой константы. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ просто ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкста, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° посчитаСт, Ρ‡Ρ‚ΠΎ строка Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ, ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков программирования.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ всС доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ: ΠΎΡ‚ простого экранирования Π΄ΠΎ использования встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стандартных подсистСм. ΠœΡ‹ рассмотрим Π½ΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Β«Π΅Π»ΠΎΡ‡ΠΊΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π² русской Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ΅, ΠΈ обсудим, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° экранирования Π² строковых константах

Когда Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, любая тСкстовая строка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° символом ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ВСкст = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ "ΠœΠΈΡ€"" ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ систСма ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ строку "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ", Π° Π·Π°Ρ‚Π΅ΠΌ нСпонятный Π΅ΠΉ символ М, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ экранированиСм.

Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° проста: Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΎΠ΄Π½Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ подряд. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ literal-символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис:

ВСкстБДвойными = "Он сказал: ""ΠŸΡ€ΠΈΠ²Π΅Ρ‚!"" ΠΈ ΡƒΡˆΠ΅Π»";

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(ВСкстБДвойными);

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния этого ΠΊΠΎΠ΄Π° Π² ΠΎΠΊΠ½Π΅ сообщСний появится Ρ„Ρ€Π°Π·Π°: Он сказал: "ΠŸΡ€ΠΈΠ²Π΅Ρ‚!" ΠΈ ΡƒΡˆΠ΅Π». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ прСдставлСнии строки количСство ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² СдинствСнном числС. Π­Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным манипуляциям.

πŸ’‘

Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ строку динамичСски, concatenation (конкатСнация) Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "+" Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ экранированиС Π²Π½ΡƒΡ‚Ρ€ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° остаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ.

Если ваша Π·Π°Π΄Π°Ρ‡Π° касаСтся Π²Ρ‹Π²ΠΎΠ΄Π° типографских ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слуТСбными символами компилятора.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ» для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ

Для случаСв, ΠΊΠΎΠ³Π΄Π° экранированиС каТСтся Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° символов, Π² языкС 1Π‘ прСдусмотрСна встроСнная функция Π‘ΠΈΠΌΠ²ΠΎΠ»(). Она позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ любой символ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII ΠΈΠ»ΠΈ Unicode ΠΏΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с динамичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Код Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII Ρ€Π°Π²Π΅Π½ 34. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹Π·ΠΎΠ² Π‘ΠΈΠΌΠ²ΠΎΠ»(34) Π²Π΅Ρ€Π½Π΅Ρ‚ строку, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях, особСнно ΠΊΠΎΠ³Π΄Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈΠ»ΠΈ слоТных выраТСниях.

  • πŸ”’ Код 34 соотвСтствуСт символу " (двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°).
  • πŸ”’ Код 39 соотвСтствуСт символу ' (одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ апостроф).
  • πŸ”’ Код 171 соотвСтствуСт символу Β« (лСвая ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°-Π΅Π»ΠΎΡ‡ΠΊΠ°).
  • πŸ”’ Код 187 соотвСтствуСт символу Β» (правая ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°-Π΅Π»ΠΎΡ‡ΠΊΠ°).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для построСния строки:

ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° = Π‘ΠΈΠΌΠ²ΠΎΠ»(34);

ВСкст = "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ: " + ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° + Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ + ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°;

Π’Π°ΠΊΠΎΠΉ способ часто примСняСтся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… стандартных подсистСм (Π‘Π‘ΠŸ) ΠΈ ΠΏΡ€ΠΈ написании ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π³Π΄Π΅ Ρ‚ΠΈΠΏ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ настроСк ΠΈΠ»ΠΈ контСкста выполнСния. ИспользованиС числовых ΠΊΠΎΠ΄ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ избавляСт ΠΎΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡˆΡƒΠΌΠ° Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° подряд ΠΈΠ΄ΡƒΡ‚ мноТСствСнныС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

πŸ“Š Какой способ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ)
Ѐункция Π‘ΠΈΠΌΠ²ΠΎΠ»(34)
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… модулях
Π—Π°ΠΌΠ΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

Π Π°Π±ΠΎΡ‚Π° с типографскими ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ-Π΅Π»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ

Π’ русской Π΄Π΅Π»ΠΎΠ²ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… стандартом ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Π΅Π»ΠΎΡ‡ΠΊΠΈ (Β« ΠΈ Β»). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ английских ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ экранирования ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слуТСбными символами языка 1Π‘. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ константу, Ссли ваша рСдакция ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Unicode.

Однако, ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² ΠΊΠΎΠ΄ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ»ΠΈ раскладкой. НадСТнСС всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ»() с ΠΊΠΎΠ΄Π°ΠΌΠΈ 171 ΠΈ 187, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ символы ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов Windows. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° любом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π΄Π°ΠΆΠ΅ с нСстандартными ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ, отобразится ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ.

Рассмотрим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ соотвСтствия ΠΊΠΎΠ΄ΠΎΠ² для основных Π²ΠΈΠ΄ΠΎΠ² ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² 1Π‘:

Π’ΠΈΠΏ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Код Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»() ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
Двойная прямая " 34 ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, JSON, CSV
ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Π°Ρ прямая ' 39 Апострофы, SQL-запросы
ЛСвая Π΅Π»ΠΎΡ‡ΠΊΠ° Β« 171 ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹
ΠŸΡ€Π°Π²Π°Ρ Π΅Π»ΠΎΡ‡ΠΊΠ° Β» 187 ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠœΠ°ΠΊΠ΅Ρ‚, использованиС Π΅Π»ΠΎΡ‡Π΅ΠΊ ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄. РСкомСндуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ константы для этих символов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ΄Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ понятныС ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹.ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°Π›Π΅Π²Π°Ρ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°ΠΌΠΈ?

Если вмСсто ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ-Π΅Π»ΠΎΡ‡Π΅ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ пустыС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅. НСкоторыС старыС ΠΌΠΎΠ½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π½Π΅ содСрТат Π³Π»ΠΈΡ„ΠΎΠ² для символов Unicode с ΠΊΠΎΠ΄Π°ΠΌΠΈ Π²Ρ‹ΡˆΠ΅ 127. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΡˆΡ€ΠΈΡ„Ρ‚ Π½Π° Arial ΠΈΠ»ΠΈ Times New Roman.

Π—Π°ΠΌΠ΅Π½Π° символов Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° тСкст поступаСт ΠΈΠ· внСшнСго источника (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, загруТаСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ HTTP-запросу), ΠΈ Π² Π½Π΅ΠΌ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы-Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ прямыС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° типографскиС. Для этих Ρ†Π΅Π»Π΅ΠΉ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ функция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ().

Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку, подстроку для поиска ΠΈ подстроку для Π·Π°ΠΌΠ΅Π½Ρ‹. Она рСгистронСзависима, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для постобработки тСкста ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сцСнария Π·Π°ΠΌΠ΅Π½Ρ‹ прямых ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° Π΅Π»ΠΎΡ‡ΠΊΠΈ:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚ = "Π’ΠΎΠ²Π°Ρ€ "ΠœΠΎΠ»ΠΎΡ‚ΠΎΠΊ" стоит 500 Ρ€ΡƒΠ±.";

ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° = Π‘ΠΈΠΌΠ²ΠΎΠ»(34);

ЕлочкаЛСвая = Π‘ΠΈΠΌΠ²ΠΎΠ»(171);

Π•Π»ΠΎΡ‡ΠΊΠ°ΠŸΡ€Π°Π²Π°Ρ = Π‘ΠΈΠΌΠ²ΠΎΠ»(187);

// ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π·Π°ΠΌΠ΅Π½Π° Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅

// ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для качСствСнной Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½ΡƒΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ слоТный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

// Но для быстрой Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚:

ВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°, ЕлочкаЛСвая);

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π·Π°ΠΌΠ΅Π½Π° всСх ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° Β«Π΅Π»ΠΎΡ‡ΠΊΠΈΒ» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ станут ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ (Π»Π΅Π²Ρ‹ΠΌΠΈ). Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ русской Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ контСкст ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹.

Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² XML ΠΈΠ»ΠΈ HTML, Π³Π΄Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ‚Π΅Π³ΠΎΠ². Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡ… часто Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Π½Π° HTML-сущности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ".

πŸ’‘

Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ создаСт Π½ΠΎΠ²ΡƒΡŽ строку, Π½Π΅ измСняя ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ½Π°Ρ‡Π΅ измСнСния Π½Π΅ сохранятся.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ HTML

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ Π½Π° языкС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ 1Π‘ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ HTML-страниц для Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π’ HTML двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° являСтся критичСским символом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ‚Π΅Π³ΠΎΠ². НСэкранированная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ вСрстку страницы.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния Π² HTML Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сущности. Π’ 1Π‘ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΌΠ΅Π½Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ. НапримСр, символ " слСдуСт Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ". ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML, Π³Π΄Π΅ экранированиС происходит автоматичСски ΠΏΡ€ΠΈ использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Π—Π°ΠΏΠΈΡΡŒXML.

Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ тСкст для поля Π²Π²ΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ для ячСйки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прСобразования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ вставляСтС тСкст нСпосрСдствСнно Π² ΠΊΠΎΠ΄ HTML-шаблона Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’ ΠΌΠ°ΠΊΠ΅Ρ‚Π°Ρ… Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ записаны Π² ячСйкС.

  • 🌐 Π’ HTML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ " для Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
  • 🌐 Π’ HTML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ' для ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.
  • 🌐 Π’ JSON строки всСгда ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм \".

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Π±-сСрвисами ΠΈ REST API, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ экранированиС ΠΏΡ€ΠΈ сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² JSON. Однако, Ссли Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ JSON-строку Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ, Π²Ρ‹ обязаны сами ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ экранированиСм всСх Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΈΠ½Π°Ρ‡Π΅ парсСр Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии Ρ€Π΅Π»ΠΈΠ·Π°, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Π΅Π±-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ошибка связана с ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников (Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ², Ρ‡Π°Ρ‚ΠΎΠ²). Часто тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ автоматичСски Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ прямыС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° типографскиС (Β«ΡƒΠΌΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈΒ»). Если Ρ‚Π°ΠΊΠΎΠΉ символ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² ΠΊΠΎΠ΄ 1Π‘ вмСсто слуТСбной ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, систСма Π½Π΅ распознаСт Π½Π°Ρ‡Π°Π»ΠΎ строки ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксиса, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Ѐункция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, сколько Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ символов содСрТится Π² строкС. НапримСр, Ссли Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, Π° Π΄Π»ΠΈΠ½Π° строки большС ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ экранированиС ΠΈΠ»ΠΈ подмСшались Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ символы.

ВСстБтрока = "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°""";

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСстБтрока)); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 9, Π° Π½Π΅ 8, Ссли Π½Π΅ ΡƒΡ‡Π΅ΡΡ‚ΡŒ экранированиС

Π’Π°ΠΊΠΆΠ΅ стоит Π±Ρ‹Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ использовании ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² запросах ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ тСкстС запроса 1Π‘ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса содСрТит ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π° Π½Π΅ Π²ΡˆΠΈΡ‚Π° Π² тСкст запроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок выполнСния ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… уязвимостСй.

Как Π½Π°ΠΉΡ‚ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…?

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ строку Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½Π΅ копируя Π΅Ρ‘. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символах форматирования ΠΈΠ»ΠΈ использовании ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π½Π΅ выполняСтся, Ссли я ΠΏΠΈΡˆΡƒ ΠΎΠ΄Π½Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ 1Π‘ считаСт ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²ΡΡ‚Ρ€Π΅Ρ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π½Π°Ρ‡Π°Π»ΠΎΠΌ строки, Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ β€” Π΅Ρ‘ ΠΊΠΎΠ½Ρ†ΠΎΠΌ. Всё, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ послС Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, воспринимаСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΊΠ°ΠΊ тСкст. Если Ρ‚Π°ΠΌ находятся Π±ΡƒΠΊΠ²Ρ‹, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка синтаксиса. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ для экранирования.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ для обозначСния строк Π² 1Π‘?

НСт, Π² языкС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ (".."). ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (') Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый символ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ экранирования, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π»ΠΎΠ³ΠΈΠΊΠΈ вашСго прилоТСния.

Как вывСсти ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² запросС ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

Π’ тСкстС запроса 1Π‘ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π΅ ΠΆΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ подряд Π²Π½ΡƒΡ‚Ρ€ΠΈ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. Однако Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащСС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈ систСма сама ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы.

Какой ΠΊΠΎΠ΄ Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Π΅Π»ΠΎΡ‡ΠΊΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»?

Для Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Π΅Π»ΠΎΡ‡ΠΊΠΈ (Β«) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ 171, Π° для ΠΏΡ€Π°Π²ΠΎΠΉ (Β») β€” ΠΊΠΎΠ΄ 187. Π­Ρ‚ΠΈ ΠΊΠΎΠ΄Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ стандарту Unicode ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² 1Π‘.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ вмСсто ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹?

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΡˆΡ€ΠΈΡ„Ρ‚Π°. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ для ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ содСрТит графичСского изобраТСния (Π³Π»ΠΈΡ„Π°) для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ символа Unicode. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ ячСйки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° стандартный, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arial ΠΈΠ»ΠΈ Courier New, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΈ спСцсимволов.