Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ Π°ΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ CR, EOL
0-31 ΠΈ 127 ΠΊΠΎΠ΄ ASCII Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
ΡΠ°ΠΊΠΆΠ΅ # 2085 ΡΠ²ΡΠ·Π°Π½
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ?
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠ°ΡΠΈΠ» 20 ΠΌ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ URL-Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Unicode, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠΎΠ΅ΠΌΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΌΡ URL-Π°Π΄ΡΠ΅ΡΡ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΎΠ½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΡΠΈΡ ΡΡΡΠ°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ ΠΎΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
+Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π΅Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΎΡΠΌΠ°ΡΠ° U+200B (ZERO WIDTH SPACE), ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ Π² VSCode.
PS> [char]0x200B | Out-File .\zero_width_space.ps1 -Encoding utf8
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π² Π±Π°ΠΉΡΠ°Ρ
:
PS > [io.file]::ReadAllBytes('.\zero_width_space.ps1')
239
187
191
226
128
139
13
10
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
VSCode Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ "editor.renderWhitespace"="all"
ΠΠ΅ΡΠ²ΡΠ΅ 239 187 191 (ΠΠ£ΠΠΠΠΠ― Π¨ΠΠ ΠΠΠ ΠΠΠ ΠΠΠ Π«ΠΠΠΠΠ ΠΠ ΠΠΠΠΠ) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ 226 128 139 13 10 (ΠΠ£ΠΠΠΠΠ― Π¨ΠΠ ΠΠΠ ΠΠ ΠΠΠΠ) +(CR) + (LF) ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΎΡΠ°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΡΠΎΡΠΊΠ° (ZERO WIDTH SPACE) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ => Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π°.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Unicode Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΌΡΡΠΎΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ· Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΠ°ΠΆΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π΅ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ?