servlet post response.sendRedirect 乱码

Posted think的海角

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet post response.sendRedirect 乱码相关的知识,希望对你有一定的参考价值。

response.sendRedircet一般用于传递字符串参数

常会出现乱码:

情景1:

post表单提交,跳转后的servlet,通过getParameter(name)进行解码,获取的中文乱码

两个?号表示编码和解码不一致。由下图可知,编码为gbk;而通过request.getCharacterEncoding()获取的值为null,所以会按照系统默认编码ISO8859-1进行解码

在第一个getParameter之前添加,request.setCharacterEncoding("gbk")即可解决

 

2、res.sendRedirect携带中文参数从一个servlet跳转到另一个servlet,出现乱码

此处sex1为“男”,跳转后乱码出现为1个问号,一个问号表示编解码格式一致,但是改汉字的编码不在ISO8859-1范围内,出现乱码

解决:重定向之前,先确定编码格式为(gbk不行)utf-8    String sex1 = java.net.URLEncoder.encode(sex, "utf-8");再在跳转后的servlet中通过getParameter获取

 

 

 注:从定向参考http://blog.csdn.net/jasstool/article/details/68947791

以上是关于servlet post response.sendRedirect 乱码的主要内容,如果未能解决你的问题,请参考以下文章

servlet里如何处理post和get请求

servlet 提交get post

从另一个 Servlet 调用 Servlet Post

servlet 怎么获取http post 的body

AEM 中的 Servlet,POST 请求中的正文丢失

Servlet处理GET和POST请求