前后端交互时经常会用到这种问题,当传参遇到中文时就头大,各种乱码。
下面就总结了两种乱码的情况并给出解决方案。
还是我们的js的方法:
encodeURI() 函数可把字符串作为 URI 进行编码。
API参考http://www.w3school.com.cn/jsref/jsref_encodeuri.asp
1、通过url传参(前端转码两次)
至于为什么这种情景前端要转码两次,原理参考:http://blog.csdn.net/u012027337/article/details/52126475
①前端转码:
var url = 'web/comm?user_name='+encodeURI(encodeURI(user_name));
②后端解码:
if(values.isNotEmpty("user_name")){
String user_name = values.getStr("user_name");
try {
user_name = URLDecoder.decode(user_name, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
values.add("user_name", user_name);
}
2、通过表单提交传参(前端转码一次)
解码方法同上。