jsp参数传递乱码
代码如下:
《jsp文件》
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%request.setCharacterEncoding("GBK");%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<div>
<form method="post" name="searchform" action="SearchServlet">
<font face="华文彩云" size="6" style="position:relative;top:6px;">站内搜索</font>
<input type="text" name="SearchContent" value="请输入关键字"
style="font-size:18px;width:150;height:35; position:relative;top:10px;left:5px;bottom:10px;"
onmouseover=this.focus();this.select();
onclick="if(value==defaultValue){value='';this.style.color='#000'}"
onBlur="if(!value){value=defaultValue;this.style.color='#999'}" />
<input type="submit" value="" style="background:url(image/find.png);width:35;height:35;position:relative;top:10px;left:5px;">
</form>
</div>
</body>
</html>
《servlet.java文件》
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String SearchContent = new String(request.getParameter("SearchContent").getBytes("ISO-8859-1"),"GBK");
//String SearchContent1 = URLDecoder.decode(request.getParameter("SearchContent"), "GBK");
System.out.println(SearchContent);
}
代码如上所示,但是到最后在控制台打印出来的结果总是乱码,有哪位高手帮忙解决一下,调了一天了,网上的解决办法也看了很多,还是不行。。解决办法不能涉及到修改tomcat的配置文件。。
[解决办法]
在 html 的 head里面加上
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
这样在浏览器提交表单的时候会把数据进行gbk编码
[解决办法]
new String(request.getParameter("typename").getBytes("ISO-8859-1"),"utf-8")试试
jsp页面改成utf-8编码
[解决办法]
//在doPost里面 这个是针对POST提交的request.request.setCharacterEncoding("GBK");/*这是针对GET方式提交的String SearchContent = new String(request.getParameter("SearchContent").getBytes("ISO-8859-1"),"GBK");*/
[解决办法]
把响应格式也设置成GBK格式。