Ukusebenzisa Izinhlamvu Ze-Unicode Ezifanayo ukuze Udlule Ukuqinisekisa

GitHub ngigcine isengozini yokuhlaselwa okukuvumela ukuthi ubambe ukufinyelela ku-akhawunti ngokukhohlisa izinhlamvu ze-Unicode ku-imeyili. Inkinga ukuthi ezinye izinhlamvu ze-Unicode, lapho kusetshenziswa umsebenzi wokuguqula osonhlamvukazi abancane noma abakhulu, zihunyushwa zibe izinhlamvu ezivamile ezifanayo ngesitayela (lapho izinhlamvu eziningana ezihlukene zihunyushwa zibe uhlamvu olulodwa - isibonelo, uhlamvu lwesiTurkey "Δ±" no "i" " uma iguqulelwa kosonhlamvukazi iguqulelwa ku-"I").

Ngaphambi kokuhlola imingcele yokungena kwezinye izinsiza nezinhlelo zokusebenza, idatha ehlinzekwe ngabasebenzisi iqale iguqulelwe ekubeni ngohlamvu oluphezulu noma oluncane bese ihlolwa kusizindalwazi. Uma isevisi ivumela ukusetshenziswa kwezinhlamvu ze-unicode ekungeneni ngemvume noma ku-imeyili, umhlaseli angasebenzisa izinhlamvu ze-unicode ezifanayo ukuze enze ukuhlasela okushintsha ukungqubuzana ku-Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@GΔ±thub.com'.toUpperCase() == '[i-imeyili ivikelwe]'.ToUpperCase()

Umhlaseli ku-GitHub angakwazi ngefomu lokuthola kabusha igama eliyimfihlo elikhohliwe, qala ukuthumela ikhodi yokuthola kwenye i-imeyili ngokubonisa ngendlela ikheli elihlanganisa uhlamvu lwe-unicode olubangela ukungqubuzana (isibonelo, esikhundleni sokuthi [i-imeyili ivikelwe] i-imeyili m ikhonjisiweΔ±[i-imeyili ivikelwe]). Ikheli liphumelele ukuhlolwa ngoba liguqulelwe kofeleba futhi lafana nekheli lokuqala ([i-imeyili ivikelwe] ), kodwa lapho kuthunyelwa incwadi yashintshwa njengoba injalo futhi ikhodi yokutakula yathunyelwa ekhelini lomgunyathi (mΔ±[i-imeyili ivikelwe]).

Ezinye ze phumlani, okubangela ukushayisana lapho kuguqulwa irejista:

0x00DF SS
ngi 0x0131
ngo 0x017F S
ff 0xFB00 FF
Idatha ye-0xFB01 FI
0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ο¬… 0xFB05 ST
st 0xFB06 ST
K 0x212A k

Source: opennet.ru

Engeza amazwana