解决中文乱码问题
解决request的中文乱码问题:有三种方式
三种方式最常用的方式是:第一种和第二种方式结合起来使用
注意:一定要修改 req.setCharacterEncoding("UTF-8");
server.xml中修改编码:URIEncoding="UTF-8"
三种方式最常用的方式是:第一种和第二种方式结合起来使用
注意:一定要修改 req.setCharacterEncoding("UTF-8");
server.xml中修改编码:URIEncoding="UTF-8"
public class TestHttpServlet extends HttpServlet {
/**
* 解决request的中文乱码问题:有三种方式
* 三种方式最常用的方式是:第一种和第二种方式结合起来使用
* 注意:一定要修改 req.setCharacterEncoding("UTF-8");
* server.xml中修改编码:URIEncoding="UTF-8"
*
* */
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//第一种解决乱码问题:设置请求对象解码为UTF-8, 只支持post,不支持get
req.setCharacterEncoding("UTF-8");
//String getParameter(String name): 获取用户在页面中填写的信息.
String name1 = req.getParameter("name");
System.out.println(name1);
//第二种解决乱码问题:在server.xml中修改编码:URIEncoding="UTF-8" 只支持GET,不支持POST
String hobby = req.getParameter("hobby");
System.out.println(hobby);
//第三种解决乱码问题:get和post都支持
String name2 = req.getParameter("name");
//将原来的默认编码给转成二进制
byte[] nameBytes = name2.getBytes("ISO-8859-1");
//再通过UTF-8的编码把这个数据转成相应的字符串
String str = new String(nameBytes,"UTF-8");
System.out.println(str);
}
}
login.html 文件
<body>
<form action="/servlet/hello" method="get">
用户名:<input type="text" name="name"> <br>
年 纪:<input type="text" name="age"> <br>
爱 好:<input type="checkbox" name="hobby" value="1"> 篮球
<input type="checkbox" name="hobby" value="2"> 足球
<input type="checkbox" name="hobby" value="3"> 棒球 <br>
<input type="submit" value="提交">
</form>
</body>