项目中JSP,JS都是采用的GBK编码方式,所以后台编码时,采用new String("".getBytes("ISO-8859-1"),"GBK")一般也就能解决乱码的问题
但今天发现Opera浏览器这样获取的值是乱码,如果转成UTF-8就不是乱码,这让我非常郁闷
这问题调试了一两个小时,最后的解决办法:
前台:encodeURI("xxxx"); //xxxx包含中文
后台:URLDecoder.decode(ServletActionContext.getRequest().getParameter("keywords"),"UTF-8"); //这里不明白为什么不是GBK
如果涉及到分页(即需要把值拼接到翻页时的url中),此时需要进行两次编码encodeURI(encodeURI("xxxxxxxxxxxx")) //xxxxxxxxxxxx包含中文