/ 中存储网

Apache+tomcat服务器解决中文乱码的问题

2014-03-31 09:14:01 来源:kejihao
A.  此项目中用到在Web.xml中用到过滤器:

   <filter>

<filter-name>encodingFilter</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter

</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>*.do</url-pattern>

</filter-mapping>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>*.properties</url-pattern>

</filter-mapping>  

这样编程序的时候,就不用考虑中文,直接编写就可以了。

B.在Tomcat中,如果get方法,使用如下:

http://www.sqrc.net:88/sqrc/ItemManageAction.do?method=getItem&cateId=1&cateType=2&cateName=首页图片新闻

这样,需要在Tomcat中的server.xml中配置:

<Connector port="9088" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"  URIEncoding="UTF-8" />

C.如果针对apache转发tomcat,因为使用ajp,所以ajp也需要加:

    <Connector port="9009" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8" />

 这样上面的参数中文就解决了!

D.如果访问apache的中文资源,服务器是windows,在apaceh的httpd.conf中,添加如下:

AddDefaultCharset   GB2312

然后重启apache

这样就可以访问在apache下面的如“测试.txt”文件了。(经过测试,去掉这个也可以)

E.奇数偶数个汉字乱码问题:

对于客户端提交(用get方法)的只能用js的encodeURI,如果是程序得到的,得用java.net.URLEncode的encode方法