encodeURIComponent()与encodeURI()区别

今天查询数据时候,jsp到后台模糊查询就是查不出数据,后来经过debug发现,前台传过来的数据经过URLDecoder.decode(zymc, "UTF-8"); 

变成     医科大学(“5 3”)

实际上我要的数据是  医科大学(“5+3”)

小伙伴发现没,+号变成空格了。我在前台js用的是encodeURI()函数编码的。

我就在想应该是数据经过这个方法编码后自动把+变成空格了,

经过百度发现,原来如果‘+’没有经过处理会解码为‘ ’(空格),而‘%2B’解码之后才是‘+

必须要用encodeURIComponent(),用encodeURI()无法处理这些字符。

如果是post提交表单的或者用jQuery的serizlize()就不会出现这种问题。

而我恰恰是get提交~被坑了2个小时 附上代码各位小伙伴比较下

不能处理 + 号等字符

zymc="+encodeURI(encodeURI($('#zymclist').combobox('getValue'))));

可以处理

zymc="+encodeURIComponent(encodeURIComponent($('#zymclist').combobox('getValue'))));
写此博客为了以后长记性~


你可能感兴趣的:(encodeURIComponent()与encodeURI()区别)