关于jsp,sevlet,tomcat中中文乱码的问题,网上一搜一箩筐,不过有很多的解决方法太过于狭窄,很多用gb2312的方式来解决,结果显然会导致,假如不是中文,俄语,日语,还有其他乱七八糟的语言可能就会是乱码了,所以解决乱码问题,首先要确定的是在每一个地方,使用的encode都应该是UTF-8。
确定了编码之后,那么就着手设置哪些地方为utf-8的编码
1.jsp页面中,有三处
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8" />
3.项目中的WebContent/WEB-INF/web.xml中,添加过滤器(过滤器代码可以随便写个简单的即可),解决post请求中的乱码问题
<filter>
<filter-name>encoding</filter-name>
<filter-class>filter.FilterEncoding</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样一来,直接部署在tomcat目录下的项目就可以解决乱码的问题,但是,我是在eclipse下面开发的项目,这个时候依然存在乱码问题,思索良久,找到了原因,因为eclipse下的动态项目运行web 应用的时候,并不是直接应用tomcat的配置,而是使用一个server的项目中的配置,如图:
这里面的配置影响了eclipse中的web项目的编码,因此需要更改此地的配置,然后我将其中的server.xml参考tomcat中的修改之后,并没有解决乱码问题(可能是我当时没有刷新),后来的解决办法是,删除这个server,然后重新添加server,目的是得到最新的tomcat的配置,这样,乱码问题即不复存在。
确定了编码之后,那么就着手设置哪些地方为utf-8的编码
1.jsp页面中,有三处
- <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
URIEncoding="UTF-8" />
3.项目中的WebContent/WEB-INF/web.xml中,添加过滤器(过滤器代码可以随便写个简单的即可),解决post请求中的乱码问题
<filter>
<filter-name>encoding</filter-name>
<filter-class>filter.FilterEncoding</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样一来,直接部署在tomcat目录下的项目就可以解决乱码的问题,但是,我是在eclipse下面开发的项目,这个时候依然存在乱码问题,思索良久,找到了原因,因为eclipse下的动态项目运行web 应用的时候,并不是直接应用tomcat的配置,而是使用一个server的项目中的配置,如图:
这里面的配置影响了eclipse中的web项目的编码,因此需要更改此地的配置,然后我将其中的server.xml参考tomcat中的修改之后,并没有解决乱码问题(可能是我当时没有刷新),后来的解决办法是,删除这个server,然后重新添加server,目的是得到最新的tomcat的配置,这样,乱码问题即不复存在。
No comments:
Post a Comment