Javascript encodeURI和Ext.urlDecode

Javascript encodeURI和Ext.urlDecode,javascript,extjs,Javascript,Extjs,我有一个页面通过ExtJS在iframe中加载其他页面: alert(UNID); // returns ...AAA== ... autoEl:{ tag:"iframe", src: someurl+'?anyparam=anything&unid='+encodeURI(UNID)+'&someparam=' // Chrome Console (Network tab) tells me the URI is ..

我有一个页面通过ExtJS在iframe中加载其他页面:

alert(UNID); // returns  ...AAA==
...
    autoEl:{
        tag:"iframe",
        src: someurl+'?anyparam=anything&unid='+encodeURI(UNID)+'&someparam='
        // Chrome Console (Network tab) tells me the URI is ...AAA==&someparam=
    }
另一个网站使用ExtJS来解码给定的参数

var params = Ext.urlDecode(window.location.search);
alert(params.unid); // returns ...AAA

我的错误在哪里?如果没有,这是encodeURI或urlDecode中的错误吗?

不,这不是错误,
encodeURI
没有编码等于
=
符号,因此当
Ext.urlDecode
解析字符串时,它会将其视为URI的一部分-
…AAA='
='//无用/丢弃的

答案只是在编码URI的“组件”部分时使用正确的函数:

encodeURI(“…AAA=”);//“…AAA=”
encodeURIComponent(“…AAA==”);//“…AAA%3D%3D”
这些差异在下表中有详细说明