Tomcat+Eclipse乱码问题解决方法
概述</ul> 乱码问题是大家在日常开发过程中经常会遇到的问题,由于各自环境的不同,解决起来也费时费力,本文主要介绍一般性乱码问题的解决方法与步骤,开发工具采用Eclipse+Tomcat,统一设置项目编码UTF-8为例,供大家参考。
[*]解决方法与步骤
步骤一:首先,检查JSP页面声明的编码是否正确,正确示例(注意标红的地方):
https://common.cnblogs.com/images/copycode.gif<%@ page language="java" contentType="text/html; charset=UTF-8"
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/><title>Insert title here</title>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/></head>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/><body>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/></body>
</html>https://common.cnblogs.com/images/copycode.gif 步骤二:在确认步骤一没有问题后,接下来检查项目属性编码、 JSP 页面属性的编码和 Java 文件的属性编码,项目属性编码和文件属性编码也需要统一设置为 UTF-8 ,正确效果如下图:
https://images2015.cnblogs.com/blog/1129358/201703/1129358-20170322010721908-1933370653.png
https://images2015.cnblogs.com/blog/1129358/201703/1129358-20170322010740565-222991776.png
https://images2015.cnblogs.com/blog/1129358/201703/1129358-20170322010800846-440078459.png
为了方便起见,可以对需要统一编码的文件格式进行编码关联设置,如下图:
https://images2015.cnblogs.com/blog/1129358/201703/1129358-20170322010930533-626369824.png
步骤三:在确认步骤二没有问题后,接下来就需要检查 Tomcat 的编码,需要把 Tomcat 的编码也设置为 UTF-8,找到 Tomcat 安装目录下的 conf 目录下的 server.xml 文件,如果没有修改过 Tomcat 的端口,则直接搜索8080 ,找到对应的 Connector 标签加上 URIEncoding 属性,值为 UTF-8。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 使用 Eclipse 做为开发工具,还需修改 Eclipse 中项目对应的 Tomcat 的配置文件,方法同上。
https://images2015.cnblogs.com/blog/1129358/201703/1129358-20170322012039440-1026010152.png
至此,常用的解决项目中文乱码的“三码合一”的配置方法都已经配置好了,为了彻底的解决乱码问题,我们还可以通过在 web.xml 中配置 Spring 的编码过滤器来处理乱码问题。
https://common.cnblogs.com/images/copycode.gif <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>CharacterEncodingFilter <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>org.springframework.web.filter.CharacterEncodingFilter <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>encoding <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>utf-8 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>CharacterEncodingFilter <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>/* <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>https://common.cnblogs.com/images/copycode.gif
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]