项目中中文乱码的问题

项目中应该尽量的避免中文参数的传递,但是如果必须需要传递中文参数时,就必须进行相关的设置来避免中文参数的乱码问题。

那基于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"。

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

如此整个设置过程结束,乱码问题解决。如有说的不对的地方,大家请指正

猜你喜欢

转载自jialonely.iteye.com/blog/1106138