不多说了,直接贴代码。为何还是乱码,注意我保存的时候选择的字符编码都是utf-8形式的。欢迎探讨 给意见。<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>无标题文档</title>
</head>
<body>
<form name="myform" action="checkbox.jsp" method="get">
篮球
<input type="checkbox" name="checkbox" value="basketball" />
足球
<input type="checkbox" name="checkbox" value="football" />
羽毛球
<input type="checkbox" name="checkbox" value="bedminteen" />
乒乓球
<input type="checkbox" name="checkbox" value="pingpong" /><br /><br />
<input type="submit" value=" 提交信息 " />
</form>
</body>
</html>下面是响应页面<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>无标题文档</title>
</head><body>
<%
request.setCharacterEncoding("UTF-8");
String ck[]=request.getParameterValues("checkbox");
%>
你选择的运动是:
<%
for(int i=0;i<ck.length;i++)
{
%>
<%=ck[i]%>
<%}%>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>无标题文档</title>
</head>
<body>
<form name="myform" action="checkbox.jsp" method="get">
篮球
<input type="checkbox" name="checkbox" value="basketball" />
足球
<input type="checkbox" name="checkbox" value="football" />
羽毛球
<input type="checkbox" name="checkbox" value="bedminteen" />
乒乓球
<input type="checkbox" name="checkbox" value="pingpong" /><br /><br />
<input type="submit" value=" 提交信息 " />
</form>
</body>
</html>下面是响应页面<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>无标题文档</title>
</head><body>
<%
request.setCharacterEncoding("UTF-8");
String ck[]=request.getParameterValues("checkbox");
%>
你选择的运动是:
<%
for(int i=0;i<ck.length;i++)
{
%>
<%=ck[i]%>
<%}%>
</body>
</html>
你的数据库也是UTF-8的编码数据才可以。
如果你数据库中的数据是gb2312的,那么用utf-8读出来的,肯定是乱码。
你需要将其改为charset=gbk或者charset=gb2312
1.页面本身的乱码,通过设置页面的字符编码
2.在servlet中,通过out对象输出产生的中文乱码;
3.表单采用post方式提交,数据乱码:
a.在取数据之前用request.setCharacterEnconding("utf-8");
b.采用过滤器
4表单采用get方式提交,数据乱码;
a.转码:userName=new String(userName.getBytes("iso-8859-1"),"utf-8");
b.在tomcat的conf文件夹下的server.xml文件中,更改端口号的节点,添加属性 uriEncoding="utf-8"
request.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");基本解决了。
new String(name.getBytes("iso-8859-1"), "UTF-8");//从iso-8859-1(java的默认字符串编码)转到UTF-8