java form表单递交出现乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java form表单递交出现乱码相关的知识,希望对你有一定的参考价值。

通过judge.action提交表单后,传到后台参数的值乱码了(待投诉方响应)。要怎么解决?

jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglibprefix="s" uri="/struts-tags" %>
我是通过struts2 递交到后台的
已经解决:
原因是<form action="judge" method="post"> 中的method=“post”没加

参考技术A 页面的编码 和后台的编码要一致 同时注意传输的编码 都一致就不会出现乱码的,仔细检查一下。 参考技术B 先 可以进行乱码的处理:比如要在表单里传递一个地址,可以用下面的语句在jsp中获得地址String Address=new String(request.getParameter("Address").getBytes("iso-8859-1"), "utf-8"); 参考技术C 可以尝试把传过来的参数 先转换成 iso-XXX ,那种格式,然后 再转成相应的参数类型。 参考技术D 后台处理的时候也要设置编码的追问

怎么设置? 我试过String str=new

追答

后台是servlet处理的么,request跟response都有对应的编码方法,好像是setCharacterEncoding吧,很久没用了,不太记得了,你百度一下吧,Servlet设置编码格式的方法

本回答被提问者和网友采纳
第5个回答  2013-05-02 你后台获取前台参数是怎么取的??

eclipse中JSP表单提交运行后出现乱码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
</head>
<body>
<form action="RegisterHandle.jsp">
用户名:<input type="text" name="userName" /><br/>
密码:<input type="password" name="password" /><br/>
性别:<input type="radio" name="gender" value="male" />男
<input type="radio" name="gender" value="female" />女<br/>
住址:
<select name="address">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="哈尔滨">哈尔滨</option>
<option value="烟台">烟台</option>
</select>
<br/>
爱好:
<input type="checkbox" name="favor" value="游戏" />游戏
<input type="checkbox" name="favor" value="英语" />英语
<input type="checkbox" name="favor" value="计算机" />计算机
<input type="checkbox" name="favor" value="跑步" />跑步
<br/>
<textarea name="memo" rows="6" cols="50">请留言...</textarea>
<hr/>
<input type="submit" value="注册" />
<input type="reset" value="重置" />
</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%
String userName=request.getParameter("userName");
String password=request.getParameter("password");
String gender=request.getParameter("gender");
String address=request.getParameter("address");
String[] favor=request.getParameterValues("favor");
String memo=request.getParameter("memo");
out.println("用户名:" + userName + "<br/>");
out.println("密码:" + password + "<br/>");
out.println("性别:" + gender + "<br/>");

out.println("爱好:");
for(String f : favor)
out.println(f+" ");

out.println("<br/>");
out.println("留言:" + memo+ "<br/>");
%>

  eclipse中JSP表单提交运行后出现乱码,设置编码格式就可以了。

  工具/原料

  电脑。

  eclipse

  方法/步骤

    打开eclipse,找到windows-->preference。

    进入preference后点击Web。

    在Web下选择jsp files。

    在右边找到encoding修改为自己希望的编码。

    新建一个jsp页面,页面编码已经是我们修改后的了。

参考技术A

request.setCharacterEncoding("UTF-8");
只对post提交有效,而form默认是get提交的

本回答被提问者采纳

以上是关于java form表单递交出现乱码的主要内容,如果未能解决你的问题,请参考以下文章

在线等!关于jsp页面表单中文数据提交到后台出现乱码问题!

Javascript生成json之后提交表单向其他web项目出现问题,传参乱码。

form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

android HttpURLConnection 中post 上传表单,在数据库中最后一个字段出现乱码

easyui表单提交问题

JSP页面Form表单文本框内容传到servlet乱码问题