解决重定向后,URL中文乱码问题

原因1

  • 服务端获取数据时,获取到的就是乱码(通过debugger排除了)

原因2

  • 前后端字符编码不一致
  • 解决思路
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
  • 在服务端方法中添加字符编码设置,在客户端页面设置字符编码(未能解决)

原因3(问题解决)

  • 客户端获取中文乱码
  • 解决思路:
  • 服务端方法中添加如下代码:
//nickname是带中文的参数名
nickname = URLEncoder.encode(nickname, "utf-8");
  • 服务端使用ModelAndView进行重定向时,发现URL中文未乱码,但是页面中文乱码。(一开始使用的是String进行重定向)
function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");
      //问题出在这里,原来没有使用decodeURIComponent函数
      if(pair[0] == variable){return decodeURIComponent(pair[1]);}
    }
    return(false);
}
  • JavaScript decodeURIComponent() 函数
  • decodeURIComponent(URIstring)
参数描述
URIstring必需。一个字符串,含有编码 URI 组件或其他要解码的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值