Jsp 中Form标单提交数据给ActionForm 从Action取出来是问号

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:57:11
在Action中用了request.setCharacterEncoding("gb2312");response.setCharacterEncoding("gb2312");JSP 页面中也设置了 pageEncoding="gb2312" 可是还是乱码 郁闷

看看你的提交方式是post还是get
post一般乱码情况比较少,get是用了iso8859-1的编码格式传递的,所以有可能还得手动转一下,建议你使用filter过滤器,过滤所有。do的请求

以下几种方法可供参考(法1和法3不要同时用)
1.你可以试试在action的提交页面forward.jsp里加上<%
......
request.setCharacterEncoding("gb2312");
.....
%>
2.将memethod改为post

3.还有一个几乎万能法,不过要复杂一点,就是对含有汉字的字符进行转码
例<form name="form_add"action="forward.jsp" method="post">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="提交">
</form>

forward.jsp里的部分代码
<%
.......
//request.setCharacterEncoding("gb2312");
String temp=request.getParameter("textfield");//先把上页里的文本框textfield的值给temp
String content=new String(temp.getBytes("ISO-8859-1"),"gb2312");//content为temp中文转码后的值,gb2312也可以是gbk
out.println("content的值是"+content+"