前端传参时乱码解决方案

前后端交互时经常会用到这种问题,当传参遇到中文时就头大,各种乱码。
下面就总结了两种乱码的情况并给出解决方案。
 
还是我们的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、通过表单提交传参(前端转码一次)

解码方法同上。

原文地址:https://www.cnblogs.com/imelemon/p/8617497.html