日期:2014-05-16  浏览次数:20713 次

Apache多环境下的中文编码问题

当Apache既要支持tomcat又要支持php,同时如果tomcat下默认编码为UTF-8,而php的默认编码为根本312,这个时候如果 http.conf中AddDefaultCharset utf-8,则所有的php页面将显示为乱码,如果改为改为gb2312,则跑在tomcat下的应用可能会出现乱码。有两种解决的办法:

1. 给tomcat中的所有的应用都加上encoding filter,强行给response加上你需要的编码,这样,当tomcat返回的response经过apache返回到用户浏览器的过程中, AddDefaultCharset将不会起作用。然后在把AddDefaultCharset改成php需要的编码就可以了。这种方法有一定的缺陷,需 要修改tomcat下的应用,而且如果php应用有两种不同的编码,还是会出现乱码的情况。

2. 修改http.conf中的AddDefaultCharset为AddDefaultCharset off,关闭apache默认编码,这样php的应用和tomcat下的应用都分别采用各自的编码,apache不会强行修改这些应用返回的 response的http头中的charset。

原文链接:http://dev.collin.cn/detail/4.html