解决servlet jsp中中文乱码问题
1. 页面中文乱码
1.1. 在.jsp文件的head中加上
<meta charset="UTF-8">
1.2. 或者在.jsp文件最上面加上
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
2. 请求中文乱码
2.1. post请求中文乱码
在servlet中加上
req.setCharacterEncoding("UTF-8");
2.2. get请求中文乱码
方法一:使用byte数组
//把乱码的字符串转变成原始的字节数组
byte[] bytes = a.getBytes("ISO-8859-1");
//把原始的字节数组转变成utf-8格式的字符串
String s = new String(bytes,"UTF-8");
如图
方法二:
到当前用的tomcat的conf文件中打开server.xml文件找到设置端口的那一行添加
URIEncoding="UTF-8"
修改完成就成这个样子
<Connector port="9001" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
3. 响应中文乱码
在servlet中加上
//设置响应对象resp响应数据的编码格式为UTF-8
resp.setCharacterEncoding("UTF-8");
//设置ContentType响应头,告知浏览器以UTF-8来解析
resp.setContentType("text/html;charset=UTF-8");
最后总的为了解决中文乱码问题,除了在.jsp加上面的代码,在tomcat中添加编码方式,剩下的都要在servlet中,一般直接三个写一起。
//解决post中文乱码问题
req.setCharacterEncoding("UTF-8");
//设置响应对象resp响应数据的编码格式为UTF-8
resp.setCharacterEncoding("UTF-8");
//设置ContentType响应头,告知浏览器以UTF-8来解析
resp.setContentType("text/html;charset=UTF-8");