3
我正在編寫一個集成兩個第三方庫之間的組件。反向函數encodeURI()
從第一個庫中獲取一個URL,並將其傳遞給第二個庫。
我得到的URL是格式:
這意味着它包括編碼格式,如 「=」 和 「+」 標誌。
當我將它按原樣傳遞給第二個庫時,庫無法下載該文件。 從該庫的源代碼中,我發現它在下載文件之前會嘗試執行「編碼(url)」,導致它不需要再編碼。
我試圖將其轉移給第二庫之前解碼URL(與decodeURI或decodeURIComponent),所以那麼它將編碼併成功下載該文件,但編碼()不編碼字符全部,它有一些保留字符(如'+'和'='),所以結果url不會與原來的一樣。
綜上所述,我的問題:
假設我沒有超過2個庫的代碼的任何控制,因爲「encodedUrl」,我怎麼能實現「myFunc的(STR)」這樣的:
encodeURI(myFunc(encodedUrl)) === encodedUrl
爲每個可能的網址。
你能否發佈原始字符串? – LGSon
@LGSon我做到了,這是問題中的網址。只是將一些字母字符替換爲'x'來隱藏私人數據 – avivr
這裏描述的主要問題在這裏描述:http://stackoverflow.com/questions/17010119/decodeuri-decodes-space-as-symbol – LGSon