今天查询数据时候,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'))));
写此博客为了以后长记性~