摘要
本文首先从六个方面给出了在使用JSP过程中可能出现中文乱码的情况,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案。
#查看服务器的编码方式
打开tomcat下的conf/server.xml文件,找到Connector,查看是否有URIEncoding属性设置编码格式,若没有,则为默认编码格式。 Tomcat8+ 默认编码格式是UTF-8; Tomcat7- 默认编码格式都是ISO-8859-1
JavaWeb jsp开发过程中涉及到设置编码格式的几个地方:
pageEncoding=”UTF-8”;contentType=”text/html;charset=UTF-8”;request.setCharacterEncoding(“UTF-8”) ;response.setCharacterEncoding(“UTF-8”)。 其它设置:jsp页面乱码配置相关设置tomcat配置编码格式
简单粗暴解决办法(最简单的方法)
1、eclipse软件配置UTF-8编码格式,详细点击–> 2、出现涉及设置编码格式的都设置成utf-8格式。
详细目录
摘要#查看服务器的编码方式简单粗暴解决办法(最简单的方法)1.pageEncoding设置编码格式2、 contentType=”text/html;charset=UTF-8”3、POST请求的请求参数为中文情形request.setCharacterEncoding(“UTF-8”)4、response.setCharacterEncoding(“UTF-8”)5、GET 请求的请求参数为中文情形5.1、URL传递参数中文乱码5.2、表单提交5.3、总结
6、Eclipse中JSP文件中文乱码7、修改tomcat默认的编码方式
1.pageEncoding设置编码格式
pageEncoding=”UTF-8” 的作用是设置JSP编译成Servlet时使用的编码。通常,在JSP内部定义的字符串(直接在JSP中定义,而不是从浏览器提交的数据)出现乱码时,很多都是由于该参数设置错误引起的。例如,你的 JSP文件中含有中文字符,而在JSP中却指定pageEncoding=”iso-8859-1”,就会导致中文字符显示异常。 看下面例子:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="iso-8859-1"%>
中文
pageEncoding设置的是iso-8859-1编码格式,而jsp文件保存的utf-8格式。 运行结果: 解决办法: pageEncoding修改为utf-8格式。 总结: 我们可以看到,由于pageEncoding被指定为”iso-8859-1”,导致其在由服务器将JSP文件编译成.java文件过程中,在使用 “iso-8859-1” 读取jsp并翻译成统一的UTF-8编码的JAVA源码时,所有的中文字符被转成乱码,并使得其呈现给用户的响应也包含乱码。
2、 contentType=”text/html;charset=UTF-8”
作用是将上述第二阶段所生成的UTF8形式的二进制码以charset的编码形式来输出到客户端,如果设置不当的话,会出现乱码。
3、POST请求的请求参数为中文情形request.setCharacterEncoding(“UTF-8”)
request.setCharacterEncoding(“UTF-8”)用来指定对浏览器发送来的数据以特定的字符集进行重新编码,常用于对 POST 请求参数进行解码。 一般地,我们以POST形式提交请求,以表单形式进行并且 form 的 method 属性为 post。 实例: 收集参数的表单页input.jsp:
<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" errorPage=""%>