JavaWeb中的乱码解决方法总结
-
get请求提交中文(参数放在url中)
原因:服务器获取解析url的时候不知道编码规则
修改Tomcat服务器的安装路径下的conf目录下的配置文件server.xml
解决办法:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
另一种解决办法是用代码来实现:
// 获取请求参数 String username = req.getParameter("username"); //1 先以iso8859-1 进行 编 码 //2 再以utf-8 进行解码 username = new String(username.getBytes("iso-8859-1"), "UTF-8");
-
post请求提交中文(参数放在请求体中)
原因:服务器不知道收到的文字的编码方式
解决办法:
request.setCharacterEncoding("utf-8")
-
响应response.getWriter.write(“中文”)
原因:浏览器不知道write写入的字符类型
第一种解决办法(推荐):
response.setContentType(“text/html;charset=utf-8”);
第二种:
response.setContentType("text/html"); response.setCharacterEncoding("utf-8");
第三种:
response.addHeader("Content-Type", "text/html;charset=utf-8");