GitHub ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ Π°ΡΠ°ΠΊΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π·Π°Ρ
Π²Π°ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Ρ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π² email. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΈΠ»ΠΈ Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ (ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» «ı» ΠΈ «i» ΠΏΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² «I»).
ΠΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²Ρ
ΠΎΠ΄Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π²Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² Π²Π΅ΡΡ
Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π² ΠΠ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ unicode-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π»ΠΎΠ³ΠΈΠ½Π΅ ΠΈΠ»ΠΈ email, ΡΠΎ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ unicode-ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Unicode Case Mapping Collisions).
‘ß’.toUpperCase() == ‘ss’.toUpperCase() // 0x0131
‘K’.toLowerCase() == ‘K’.toLowerCase() // 0x212A
‘John@Gıthub.com’.toUpperCase() == ‘[email protected]’.toUpperCase()
Π GitHub Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠ³ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π±ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΊΠΎΠ΄Π° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ email ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² ΡΠΎΡΠΌΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ unicode-ΡΠΈΠΌΠ²ΠΎΠ», Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ [email protected] ΡΠΊΠ°Π·ΡΠ²Π°Π»ΡΡ email mı[email protected]). ΠΠ΄ΡΠ΅Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠ» ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π»ΡΡ Π² Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π» Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ([email protected] ), Π½ΠΎ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΏΠΈΡΡΠΌΠ° ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ»ΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΈ ΠΊΠΎΠ΄ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡ
ΠΎΠ΄ΠΈΠ» ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ (mı[email protected]).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΡ
ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°:
ß 0x00DF SS
ı 0x0131 I
ſ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
fl 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru