表单包含中文参数值,如何处理?
(1)为什么会有乱码?
表单提交时,浏览器会对中文参数值进行编码,
服务器端默认会使用iso-8859-1”来解码,所以会产生乱码
注:要看表单所在的页面打开时使用哪种字符集,表单提交时,就会使用应用的字符集来编码。
(2)如何解决?
1)post请求
request.setCharacterEncoding(String charset);
注:
a.只针对post请求有效
b.该方法一定要添加到所有的getParameter之前
c.charset要与浏览器端的一致
<meta charset="utf-8">表单中的字符集
request.setCharacterEncoding("utf-8");service方法中的字符集
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
/**
* 读取用户名和密码
*/
request.setCharacterEncoding("utf-8");
String username= request.getParameter("username");
String pwd=request.getParameter("pwd");
String []interest = request.getParameterValues("interest");
System.out.println("username:"+username);
System.out.println("pwd:"+pwd);
for(int i=0;i<interest.length;i++){
System.out.println(interest[i]);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body style = "font-size:30px;">
<form action="regist" method="post">
<fieldset>注册</fieldset>
用户名:<input type="text" name="username"><br/>
密码:<input type ="password" name="pwd"><br/>
兴趣:
钓鱼:<input type="checkbox" name="interest" value="fishing"/>
台球:<input type = "checkbox" name="interest" value="snoker"/>
做饭:<input type ="checkbox" name="interest" value="cooking"/>
<input type = "submit" value="注册">
</form>
</body>
</html>
2)get请求
在tomcat中找到server.xml添加