一,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");
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐