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

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

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

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠΎΠΌ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ здСсь являСтся Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с тСкстом Π½Π° русском языкС, использованиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ASCII ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. НаиболСС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ UTF-8, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ практичСски всС символы ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… языков.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² конструктор. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ символов Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ² согласно Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ стандарту.

ВСкст ="ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!";

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° = ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8;

Π”Π°Π½Π½Ρ‹Π΅ = Новый Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅(ВСкст, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°);

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

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами тСкста созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов памяти. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.

ИспользованиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для записи Π΄Π°Π½Π½Ρ‹Ρ…

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

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

  • πŸ“ Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ экзСмпляр ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния.
  • ✍️ Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π—Π°ΠΏΠΈΡΡŒΠ”Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ созданный ΠΏΠΎΡ‚ΠΎΠΊ.
  • πŸ”€ Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ, ΡƒΠΊΠ°Π·Π°Π² тСкст ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ.
  • πŸ’Ύ Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ запись ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² возмоТности Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ частями. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ тСкста, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

ΠŸΠΎΡ‚ΠΎΠΊ = Новый ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ;

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒΠ”Π°Π½Π½Ρ‹Ρ…(ΠŸΠΎΡ‚ΠΎΠΊ, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ("Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ("Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ;

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠŸΠΎΡ‚ΠΎΠΊ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠ˜ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅;

β˜‘οΈ Алгоритм записи Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ‚ΠΎΠΊ

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

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ тСкста

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” критичСский этап прСобразования. Π’ 1Π‘ доступСн ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ стандартных ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· пСрСчислСниС ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов.

НаиболСС распространСнной ошибкой являСтся смСшиваниС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НапримСр, Ссли Ρ„Π°ΠΉΠ» сохранСн Π² Windows-1251, Π° читаСтся ΠΊΠ°ΠΊ UTF-8, русскиС Π±ΡƒΠΊΠ²Ρ‹ отобразятся Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ВсСгда согласовывайтС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ с ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ стороной ΠΈΠ»ΠΈ стандартом Ρ„Π°ΠΉΠ»Π°.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ОписаниС РСкомСндация
UTF8 Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
Windows1251 Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ для Windows (RU) Для совмСстимости со старым ПО
UTF16 Двухбайтная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Для систСм Microsoft
ASCII Волько Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π° Волько для тСхничСских ΠΊΠΎΠ΄ΠΎΠ²

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с внСшними систСмами, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API. Часто Π²Π΅Π±-сСрвисы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ строго UTF-8, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого трСбования Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ парсинга Π½Π° сторонС сСрвСра.

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

Если ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π° нСизвСстна, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Notepad++) ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² мСню, ΠΏΠΎΠΊΠ° тСкст Π½Π΅ станСт Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив

Иногда трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π°ΠΉΡ‚Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Для этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² массив чисСл. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ 0 Π΄ΠΎ 255.

Π­Ρ‚Π° опСрация ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ криптографичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ массив Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС памяти, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ прСдставлСниС.

Для выполнСния прСобразования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π±Π°ΠΉΡ‚Π°ΠΌ ΠΏΠΎ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Ρƒ, начиная с нуля.

Π”Π°Π½Π½Ρ‹Π΅ = Новый Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅("ВСст", ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

Π‘ΡƒΡ„Π΅Ρ€ = Π”Π°Π½Π½Ρ‹Π΅.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ…;

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉΠ‘Π°ΠΉΡ‚ = Π‘ΡƒΡ„Π΅Ρ€[0]; // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π°

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π‘ΠΎΠ±Ρ€Π°Π² массив Π±Π°ΠΉΡ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ позволяСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΉΡ‚ΠΎΠ², хотя для тСкстовых Π·Π°Π΄Π°Ρ‡ это Ρ€Π΅Π΄ΠΊΠΎ трСбуСтся.

πŸ’‘

Π‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ… прСдоставляСт доступ ΠΊ Π±Π°ΠΉΡ‚Π°ΠΌ ΠΏΠΎ индСксу, Π½ΠΎ сам ΠΏΠΎ сСбС Π½Π΅ являСтся Ρ‚ΠΈΠΏΠΎΠΌ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅, Π° слуТит ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π·Π²Π΅Π½ΠΎΠΌ для манипуляций.

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ² Π² строку

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ обратная Π·Π°Π΄Π°Ρ‡Π°: ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… тСкст. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΎΡ†Π΅ΡΡ симмСтричСн записи, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ дСталям.

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, которая использовалась ΠΏΡ€ΠΈ записи. Если Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ UTF-8 Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ Windows-1251, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ искаТСн. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ пытаСтся ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ автоматичСски, полагаясь Π½Π° явныС указания Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников всСгда провСряйтС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ BOM (Byte Order Mark). НСкоторыС систСмы Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ этот ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ строки ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ чтСния дСмонстрируСт простоту процСсса. Π’Ρ‹ создаСтС ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π² Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ чтСния строки. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ обычная строка 1Π‘, готовая ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠŸΠΎΡ‚ΠΎΠΊ = Новый ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ(Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅);

Π§Ρ‚Π΅Π½ΠΈΠ΅ = Новый Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…(ΠŸΠΎΡ‚ΠΎΠΊ, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8);

ВСкст = Π§Ρ‚Π΅Π½ΠΈΠ΅.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ;

Π§Ρ‚Π΅Π½ΠΈΠ΅.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ;

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
UTF-8
Windows-1251
UTF-16
ASCII

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Β«Π±ΠΈΡ‚Ρ‹Ρ…Β» символов ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² нСсоотвСтствии ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС. РСшСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ТСсткой фиксации стандарта UTF-8 Π²ΠΎ всСх ΡƒΠ·Π»Π°Ρ… систСмы.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная ошибка β€” Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Если Π²Ρ‹ создали Π—Π°ΠΏΠΈΡΡŒΠ”Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π΅ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ, рСсурсы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ особСнно ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π² сСрвСрном ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ приводят ΠΊ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. РСкомСндуСтся ΡΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ с синтаксис-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибок.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ прСдставлСниС строки Π² консоль ΠΈΠ»ΠΈ Π»ΠΎΠ³. Бравнивая ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΈ фактичСскиС значСния Π±Π°ΠΉΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

πŸ’‘

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

МоТно Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· указания ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ?

НСт, конструктор Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‘, систСма Π½Π΅ смоТСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ пСрСвСсти символы Π² Π±Π°ΠΉΡ‚Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ символ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠ΅ количСство Π±Π°ΠΉΡ‚.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ ΠΈ ΠŸΠΎΡ‚ΠΎΠΊΠ’Π€Π°ΠΉΠ»Π΅?

ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Ρ‚ΠΎ быстро, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ объСмом RAM. ΠŸΠΎΡ‚ΠΎΠΊΠ’Π€Π°ΠΉΠ»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСпосрСдствСнно с диском, позволяя ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈΠ·-Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°ΠΉΡ‚Π°Ρ…?

Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ Π΅ΡΡ‚ΡŒ свойство Π Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ выдСлСния Π±ΡƒΡ„Π΅Ρ€Π° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ строки появляСтся лишний символ Π² Π½Π°Ρ‡Π°Π»Π΅?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ„Π°ΠΉΠ» содСрТит BOM (Byte Order Mark). ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π§Ρ‚Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ… с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8 ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ это автоматичСски, Π½ΠΎ Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π±Π°ΠΉΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π΅Π²Π΅Ρ€Π½ΠΎ.