目的:将浏览器的编码格式和response接收数据的编码格式设置成一致
Request接收客户端数据出现中文乱码问题
解决方法一(get):
在tomcat解压包下的conf文件夹下的server.xml的文件第63行改为
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URLEncoding="UTF-8" /> |
解决方法二(get/post):
Tomcat接受数据后,先将文字回到ISO-8859-1对应的字节数组,然后再按utf-8组拼字符串
String name=new String(name.getBytes("ISO-8859-1"),"UTF-8"); |
解决方法三(get/post):
request.setCharacterEncoding("utf-8"); |
Response返回给客户端数据
//以字符流的方式写数据 response.getWriter().write("<h1>hello</h2>"); //以字节流的方式写数据 response.getOutputStream().write("<h1>hello</h2>".getBytes());//在获取byte数组默认编码格式是utf-8也可指定编码格式 |
Reponse返回客户端数据出现乱码问题
解决方法一:
//设置response返回数据的编码格式 response.setCharacterEncoding("UTF-8"); //指定浏览器使用什么编码解析 response.setHeader("Content-Type", "text/html;charset=UTF-8"); response.getWriter().write("<h1>hello</h2>"); |
解决方法二:
response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("<h1>hello</h2>"); |
解决方法三:
response.getOutputStream().write("<h1>你好</h2>".getBytes("UTF-8")); |