get请求和post请求参数中文乱码的解决办法

本文介绍了GET和POST请求中出现中文乱码的解决方案。对于GET请求,可以通过两次encodeURI和URLDecoder.decode来避免乱码。POST请求则可通过设置请求体的字符编码,如使用CharacterEncodingFilter或直接调用request.setCharacterEncoding('UTF-8')。同时强调了预防中文参数使用的重要性。
摘要由CSDN通过智能技术生成

一,get请求参数中文乱码的解决办法

来自页面的一个get请求:

$("button").click(function(){
    $.get("/try/ajax/demo_test.php?name="+encodeURI(encodeURI("小明")),function(data,status){
        alert("数据: " + data + "\n状态: " + status);
    });
});

服务器端:

String name = request.getParameter("name");
orgname = URLDecoder.decode(name,"UTF-8");

因为get请求的参数在请求行上,我们不能像解决post请求那样使用 request.setCharacterEncoding(“UTF-8”);这种方式是修改方法体的编码方式。

所以只能使用以上的方式分别对请求行的汉字进行编码和解码。其实解决get请求中文乱码问题最好的方式是避免使用中文。

二,post请求参数中文乱码的解决办法

对于post请求,请求中问乱码的两种解决办法,就喜闻乐见了。一般也不会有post请求参数中文乱码吧,认为任何一个java的web项目因该都配置了字符集过滤器吧。

第一种xml中配置字符集过滤器:

<filter>
        <description>字符集过滤器</description>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
          <description>字符集编码</description>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
     </filter>
     <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>

第二种java代码设置编码为utf-8

request.setCharacterEncoding("UTF-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值