URLEncodedFormat()
轉義有效的URL字符背後的原因是什麼?爲什麼CFML中的URLEncodedFormat()會對有效的URL字符進行編碼?
有效字符:
- _ . ! ~ * " ()
的CF8 Doc說, 「[URLEncodedFormat()
逃逸]非字母數字字符與等效十六進制轉義序列」。但是,爲什麼要轉義有效的URL字符?
URLEncodedFormat()
轉義有效的URL字符背後的原因是什麼?爲什麼CFML中的URLEncodedFormat()會對有效的URL字符進行編碼?
有效字符:
- _ . ! ~ * " ()
的CF8 Doc說, 「[URLEncodedFormat()
逃逸]非字母數字字符與等效十六進制轉義序列」。但是,爲什麼要轉義有效的URL字符?
它們是有效的,但對我而言,如果您要求編程語言對url進行編碼,將其所有非字母數字字符轉換爲十六進制等價字符的字符串似乎很正常。
ASP的Server.URLEncode()和php和urlencode()一樣,除了 - 和_以外。另外,在javascript中,encodeURIComponent()函數會將所有非字母數字字符編碼爲十六進制等值。
無論如何,當使用用戶輸入形成服務器請求以防止意外事件發生時,編碼所有非字母數字字符是個好主意。
是導致錯誤或問題的有效url字符的編碼?
一個問題可能是,如果您不這樣做,如果您在電子郵件中嵌入了非編碼字符的鏈接,則電子郵件軟件可能會決定將鏈接分成兩行。
如果您使用完全編碼的網址,則可能會大大降低。只是看到它的一種方式。
我可以看到,至少在「使用URL作爲錨標記中的鏈接進行編碼時很好」