jsp当中使用form表单传递数据到另一个页面汉字出现乱码问题的解决:
方法一:
当request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用
ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。例如:
Stirng name = new String(request.getParameter("name").getBytes("ISO8859-1"))
方法二:
使用request.setCharacterEncoding("Encoding")方法,如下:
request.setCharacterEncoding("gb2312");
Stirng name = new String(request.getParameter("name").
ex:
inputName.jsp
<%@ page language="java" contentType="text/html; charset=gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<head>
<title>数据录入</title>
</head>
<body>
<form action="show.jsp" method="get">
用户名:<input type="text" name="user"></input>
密码:<input type="password" name="pwd"></input>
<br>
<input type="submit" value="登录"></input>
<input type="reset" value="重置"></input>
</form>
</body>
</html>
show.jsp
<%@ page language="java" contentType="text/html; charset=gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>传递过来的数据显示</title>
</head>
<body>
<%
String name=request.getParameter("user");
String password=request.getParameter("pwd");
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
byte b1[]=password.getBytes("ISO-8859-1");
password=new String(b1);
out.println("姓名是:"+name+"<br>");
out.println("密码是:"+password+"<br>");
%>
</body>
</html>