java网页传过来的参数乱码_Spring MVC如何处理从前端传过来的参数变成乱码?

如果你的请求是post,中文应该不会有乱码。如果有,看看你的web.xml有没有配置

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

CharacterEncodingFilter

/*

如果你的请求是get,参数有中文的,比如 ?name=张上,按照如下处理

前端encodeURIComponent(encodeURIComponent(url)),对url进行二次编码。

后端:拿到参数值,使用URLDecoder.decode(s, "UTF-8")解码一下。这样方式确实可行的,答主在实际项目总使用过。

举个例子吧:

前端:

var url = "/xxx/param/test";

var name = "张上";

name = encodeURIComponent(name);

name = encodeURIComponent(name);//二次编码

alert(name);

url = url + "?name="+name;

window.location.href = url;

后端:

@Controller

@RequestMapping(value="/param")

public class ParamController extends BaseController {

/**

* @throws UnsupportedEncodingException

*

*/

@RequestMapping(value="/test",method=RequestMethod.GET)

public String test(@RequestParam("name") String name) throws UnsupportedEncodingException{

name = URLDecoder.decode(name, "UTF-8");//实测,可以正确的得到中文。

System.out.println(name);

return "index";

}

}

注意:get请求有中文参数,可以指定容器使用何种编码规则来解码提交的参数,但是这种做法不建议使用,推荐使用二次编码吧。

为什么需要二次编码?可以看如下博文:

地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值