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