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

ПониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² экранирования ΠΈ использования встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ JSON ΠΈΠ»ΠΈ XML, Π° Ρ‚Π°ΠΊΠΆΠ΅ для красивого Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. НСкоррСктноС использованиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ синтаксичСским ошибкам компиляции ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, ΠΊ логичСским ошибкам Π² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ.

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

БинтаксичСскиС особСнности строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

Π’ языкС 1Π‘ строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, компилятор воспримСт Π΅Ρ‘ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ† строки, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. НапримСр, конструкция "Π’ΠΎΠ²Π°Ρ€"1Π‘" ΠΏΡ€ΠΎΠ΄Π°Π½" являСтся Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ сущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ способ β€” это ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ символа ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²Π΅ подряд. Π­Ρ‚ΠΎ стандартный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ экранирования Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ синтаксис 1Π‘.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВСкстБообщСния ="Он сказал:""ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"" ΠΈ ΡƒΡˆΠ΅Π»";

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния этого ΠΊΠΎΠ΄Π° пСрСмСнная ВСкстБообщСния Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСкст: Он сказал:"ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!" ΠΈ ΡƒΡˆΠ΅Π». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ прСдставлСнии строки хранится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΈΡ… Π΄Π²Π΅.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (апострофы) Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ экранирования, Ссли строка ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ спокойно ΠΏΠΈΡΠ°Ρ‚ΡŒ "It's a good day" Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… манипуляций. Однако, Ссли ваша строка ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ (Ρ‡Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΎ встрСчаСтся Π² стандартном ΠΊΠΎΠ΄Π΅ 1Π‘, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… спСцифичСских контСкстах ΠΈΠ»ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ…), ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ удвоСния Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для Π½ΠΈΡ….

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для статичСских строк. Для динамичСского добавлСния символов Π»ΡƒΡ‡ΡˆΠ΅ подходят Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ» для динамичСской вставки

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ динамичСском Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ строк, особСнно Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄ удвоСния ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ встроСнная функция Π‘ΠΈΠΌΠ²ΠΎΠ». Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ ΠΏΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ΄Ρƒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII ΠΈΠ»ΠΈ Unicode.

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ формирования строки с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…:

НаимСнованиС ="Π‘Ρ‚ΠΎΠ» офисный";

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ="Π’ΠΎΠ²Π°Ρ€" + ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° + НаимСнованиС + ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° +" принят Π½Π° ΡƒΡ‡Π΅Ρ‚";

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

  • πŸ”’ Код 34 соотвСтствуСт символу Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (").
  • πŸ”’ Код 39 соотвСтствуСт символу ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (').
  • πŸ”’ Ѐункция Π‘ΠΈΠΌΠ²ΠΎΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях.

3 эта Ρ€Π°Π·Π½ΠΈΡ†Π° минимальна ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй Π² Ρ†ΠΈΠΊΠ»Π΅.

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

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ β€” использованиС ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° слоТСния строк) для объСдинСния частСй тСкста. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ часто примСняСтся, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ извСстно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-раздСлитСля:

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ =""""; // Или Π‘ΠΈΠΌΠ²ΠΎΠ»(34)

ВСкст = Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ + Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ + Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ;

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° запись """". Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, Π° Π΄Π²Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄Π½Ρƒ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², поэтому использованиС Π‘ΠΈΠΌΠ²ΠΎΠ»(34) часто ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅.

ΠŸΡ€ΠΈ сборкС слоТных строк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для формирования JSON-структур Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (хотя Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС срСдства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON), конкатСнация становится основным инструмСнтом. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ строк Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ сборки строк

ΠŸΡ€ΠΈ сборкС ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ'+'. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚'Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π°' ΠΈΠ»ΠΈ массив строк с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ соСдинСниСм Ρ‡Π΅Ρ€Π΅Π·'Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ'. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорит Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² JSON ΠΈ XML

ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ 1Π‘ с внСшними систСмами часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ формирования строк Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… JSON ΠΈΠ»ΠΈ XML. Π’ этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ слуТСбных символов, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… значСния ΠΏΠΎΠ»Π΅ΠΉ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ парсСра Π½Π° сторонС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ систСмы.

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON строковыС значСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Если само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ содСрТит Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ экранирована ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм (\). ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, принятоС Π² ΠΊΠΎΠ΄Π΅ 1Π‘, здСсь Π½Π΅ сработаСт.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Она позволяСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС вхоТдСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Для JSON Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ " Π½Π° \".

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ экранированиС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°
1Π‘ Код Π£Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅ ("") Π’ΠΎΠ²Π°Ρ€"А" "Π’ΠΎΠ²Π°Ρ€""А"""
JSON ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш (\") Π’ΠΎΠ²Π°Ρ€"А" "Π’ΠΎΠ²Π°Ρ€ \"А\""
HTML Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ (") Π’ΠΎΠ²Π°Ρ€"А" Π’ΠΎΠ²Π°Ρ€ "А"
SQL (запрос) Π£Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅ ('') Π’ΠΎΠ²Π°Ρ€'А' 'Π’ΠΎΠ²Π°Ρ€''А'''

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ строки ΠΊ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² JSON:

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° ="НазваниС:""1Π‘""";

// Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ экранированиС 1Π‘, Ссли ΠΎΠ½ΠΎ Π΅ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с чистой строкой

// Π—Π°Ρ‚Π΅ΠΌ экранируСм для JSON

JSONΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°,"""","\""");

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

πŸ’‘

ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² JSON ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для Π·Π°ΠΌΠ΅Π½Ρ‹" Π½Π° \". Для XML Π΄ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ экранированиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π—Π°ΠΏΠΈΡΡŒXML.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π² полях Ρ„ΠΎΡ€ΠΌ, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для выдСлСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сущностСй, Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ тСкст выглядСл Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.

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

ΠšΠΎΠ΄Ρ‹ для ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ-Π»Π°ΠΏΠΎΠΊ:

  • πŸŽ‹ ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° Β«: Код 171 (ΠΈΠ»ΠΈ 0x00AB)
  • πŸŽ‹ Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Β»: Код 187 (ΠΈΠ»ΠΈ 0x00BB)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ формирования красивого сообщСния:

Π›Π΅Π²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° = Π‘ΠΈΠΌΠ²ΠΎΠ»(171);

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

ВСкст ="Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚" + Π›Π΅Π²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° + НомСрДокумСнта + ΠŸΡ€Π°Π²Π°ΡΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ° +" ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ";

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρƒ отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² интСрфСйсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании символов Unicode ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эти символы. Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях Π½Π° старых Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ… ΠΈΠ»ΠΈ Π² спСцифичСских Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ символы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ.

Поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

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

Для массового измСнСния символов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Она Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ с константами, Ρ‚Π°ΠΊ ΠΈ с полями Ρ‚Π°Π±Π»ΠΈΡ†.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°ΠΌΠ΅Π½Ρ‹ всСх Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Π»Π°ΠΏΠΊΠΈ Π² Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹:

НовоСНаимСнованиС = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(БтароСНаимСнованиС,"""", Π‘ΠΈΠΌΠ²ΠΎΠ»(171) +".." + Π‘ΠΈΠΌΠ²ΠΎΠ»(187));

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ массовых ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Update) с Π·Π°ΠΌΠ΅Π½ΠΎΠΉ символов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ создайтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию (бэкап) ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹. Ошибка Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ€Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ слоТно ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ.

ЧастыС ошибки ΠΈ способы ΠΈΡ… ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Одной ΠΈΠ· самых распространСнных ошибок являСтся нСсоотвСтствиС количСства ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² строковом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° строку с ошибкой, Π½ΠΎ Π² случаС слоТных конструкций с мноТСством ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΉ поиск ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ врСмя.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ подсвСтку синтаксиса Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ (Π² configurator ΠΈΠ»ΠΈ внСшниС IDE) Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Если Ρ†Π²Π΅Ρ‚ Π½Π΅ закрылся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки β€” Π·Π½Π°Ρ‡ΠΈΡ‚, Π³Π΄Π΅-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΎ экранированиС.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ошибка β€” ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄Π°ΠΌΠΈ символов. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ случайно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ 39 вмСсто 34, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² апостроф вмСсто Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² ΠΊΠΎΠ΄Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ сразу Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, особСнно ΠΏΡ€ΠΈ Π±Π΅Π³Π»ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ.

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

Π›Π°ΠΉΡ„Ρ…Π°ΠΊ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ строку Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π³Π΄Π΅ Π²ΠΈΠ΄Π½Ρ‹ слуТСбныС символы. НапримСр, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ всС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° слово [QUOTE] ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ структуру строки.

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Π² запросах

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

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

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

Запрос = Новый Запрос;

Запрос.ВСкст ="ВЫБРАВЬ НомСнклатура.НаимСнованиС Π˜Π— Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура Π“Π”Π• НомСнклатура.НаимСнованиС = &НаимСнованиС";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("НаимСнованиС", Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π‘ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ;

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π‘ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, ΠΈ Π²Π°ΠΌ Π½Π΅ придСтся Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠΌ экранировании.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ формирования тСкста запроса ΠΏΡƒΡ‚Π΅ΠΌ склСивания строк с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ уязвимоС мСсто для бСзопасности вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

FAQ: Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

Как Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² строку, Ссли я Π½Π΅ помню ΠΊΠΎΠ΄ символа?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ удвоСния ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° (Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ подряд). Π­Ρ‚ΠΎ самый простой способ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ знания ΠΊΠΎΠ΄ΠΎΠ². НапримСр: Π‘Ρ‚Ρ€ΠΎΠΊΠ° ="ВСкст с""ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ"" Π²Π½ΡƒΡ‚Ρ€ΠΈ".

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘ΠΈΠΌΠ²ΠΎΠ»(34) ΠΈ""""?

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² JSON ΠΌΠΎΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π»ΠΎΠΌΠ°ΡŽΡ‚ Ρ„Π°ΠΉΠ»?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² JSON двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° являСтся слуТСбным символом. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°,"""","\""") ΠΏΠ΅Ρ€Π΅Π΄ записью Π² JSON, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ это автоматичСски.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строках 1Π‘?

Π”Π°, ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (апострофы) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Π±Π΅Π· всякого экранирования. Они ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ символами тСкста. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ строки вмСсто Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ….

Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Β«Π΅Π»ΠΎΡ‡ΠΊΠΈΒ»?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ элСмСнтам справочника ΠΈΠ»ΠΈ Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ЗамСняйтС """" Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘ΠΈΠΌΠ²ΠΎΠ»(171) (для ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ) ΠΈΠ»ΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»(187) (для Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ), Π² зависимости ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ вашСго Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.