当前位置: 代码迷 >> Java Web开发 >> 关于jsp中使用相同java代码传值乱码有关问题
  详细解决方案

关于jsp中使用相同java代码传值乱码有关问题

热度:31   发布时间:2016-04-13 22:16:02.0
关于jsp中使用相同java代码传值乱码问题
具体描述:
在Eclipse中使用post提交中文数据,处理完成后数据库正确得到中文。
在jsp中使用相同java代码提交中文数据,处理后数据库得到中文均为“?”;
已尝试或已处理做法:
1、tomcat中配置文件头改成utf-8。
2、tomcat的server.xml中增加URIEncoding="utf-8"。
3、jsp中已有<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
4、jsp中增加<%response.setContentType("text/html");
                             request.setCharacterEncoding("utf-8");
                             response.setCharacterEncoding("utf-8");%>
如何解决?或解决思路?
------解决思路----------------------
最简单解决思路:过滤器。。。
至于你这里,乱码
JSP表单提交?--》另一个JSP,数据处理?---写入数据库
你的post请求呢?如果也是这个流程,却没有乱码,那就想不懂了
get请求和post请求乱码不一样的吗,还是要看你具体流程怎么走的,每一次页面之间,客户端与服务器之间,服务器与数据库之间交互都要设置编码,还有浏览器、数据库本身等等
------解决思路----------------------
后台处理
public static String getNewString(String input)
{

String result="";

try{
result=new String(input.getBytes("ISO-8859-1"),"UTF-8");
}catch(Exception e)
{
e.printStackTrace();
}
return result;
}

或者用filter过滤器
------解决思路----------------------
前端可以encodeURI,后端在用URLDecode.decode转码
------解决思路----------------------
1,过滤器是一劳永逸的做法,
2,个人意见:在JSP提交表单后,后台处理是没有转码,