项目中中文乱码的问题
项目中应该尽量的避免中文参数的传递,但是如果必须需要传递中文参数时,就必须进行相关的设置来避免中文参数的乱码问题。
那基于struts框架的web 项目为例
?
1. web.xml文件配置
利用过滤器修改request 编码格式
定义filter
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<display-name>CharacterEncodingFilter</display-name>
<description>Spring CharacterEncodingFilter</description>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
?
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2. struts.xml
指定web应用的默认代码集
<constant name="struts.i18n.encoding" value="UTF-8" />
3. jsp等前端页面
<%@ page contentType="text/html;charset=UTF-8" %>
?
配置完上述参数后,本以为能解决问题,可是参数还是乱码,最后终于发现,web服务器也要配置,我用的tomcat 5.5?
4. tomcat 配置
打开?tomcatHome/conf/server.xml 文件
在端口设置后加上 URIEncoding="UTF-8"。
<Connectorport="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
?
如此整个设置过程结束,乱码问题解决。如有说的不对的地方,大家请指正