今天,测试那边提了个bug,说ftp上传附件下载不了,我一看它给的文件名,包含了&,#,?,我就知道是它的问题了。
由于我的action地址类似如下:url?a=文件名1&b=文件名2,其他字符的编码根本就不用管,最主要的是&这个字符,谁可以对它编码,只有encodeURIComponent,
如果我不对上面地址用encodeURIComponent编码会出现什么问题。
我的本意是要在后台获得a,b这两个参数的值,假设现在文件名1的值为'$$&bb',如果不对它编码,?后面就有两个'&'符号,结果得到三个参数,显然不能正确得到a,b参数的值,对它编码后'$$&bb'里面的&就会变成十六进制的值,而不会是&,就不会截取成三个参数,虽然它被编码了,但到后台它会自动解码,得到原始值&。